home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / DATABASE / ER302.ZIP;1 / ERDOC.PRN < prev    next >
Encoding:
Text File  |  1993-04-28  |  204.0 KB  |  5,246 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                                                                  EditRand(tm)
  9.  
  10.  
  11.                                                   A Data File Management Tool
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                                                      Written and copyright by
  19.  
  20.                                                               Scott Whitehead
  21.                                                             CMD DATA SERVICES
  22.                                                          10413 Firethorn Lane
  23.                                                     Austin, Texas  78750-1740
  24.                                                      Compuserve ID 70701,2123
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                                                          SYSTEM REQUIREMENTS:
  41.  
  42.                                           IBM PC/XT/AT/PS2 or 100% compatible
  43.  
  44.                                                             DOS 3.0 or higher
  45.  
  46.                                                            400K available RAM
  47.  
  48.                                                      Hard disk or floppy disk
  49.  
  50.                                                   Color or monochrome monitor
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                      Copyright
  64.  
  65.        Copyright CMD Data Services, 1988-1993.  All rights reserved.  No part
  66.        of this  manual may be reproduced or transmitted in any form or by any
  67.        means, electronic or mechanical, including photocopying and recording,
  68.        for any  purpose other  than the  purchaser's personal use without the
  69.        written permission of CMD Data Services.
  70.  
  71.  
  72.  
  73.  
  74.                               Software License Notice
  75.  
  76.        Information in  this document  is subject to change without notice and
  77.        does not represent a commitment on the part of CMD Data Services.  The
  78.        software described  in this  document is  furnished  under  a  license
  79.        agreement or  non-disclosure agreement.  The software may be used only
  80.        in accordance with the terms of the agreement.
  81.  
  82.  
  83.  
  84.  
  85.                               Licenses and Trademarks
  86.  
  87.        EDITRAND is  a trademark  of CMD Data Services.  dBASE is a registered
  88.        trademark  of  Borland  International.    Microsoft  is  a  registered
  89.        trademark of Microsoft Corporation.  All other brand and product names
  90.        are registered trademarks of their respective companies.
  91.  
  92.  
  93.  
  94.  
  95.                     CMD Data Services Software License Agreement
  96.  
  97.        READ THIS LICENSE AGREEMENT BEFORE USING THIS SOFTWARE.  By using this
  98.        software, you  are accepting  the terms  of this agreement.  If you do
  99.        not accept  the terms  of this  agreement, you  may return this entire
  100.        package, including  all supplied  disks and  documentation, within  10
  101.        days for a full refund.
  102.  
  103.        You may  use this software on any computer, provided you have physical
  104.        possession of  the accompanying  original documentation  at all  times
  105.        during the  use of  the software.   You  may not  temporarily transfer
  106.        possession of  the CMD  Data Services software or the right to use the
  107.        software to  another individual.   You  may permanently  transfer  the
  108.        software to  another individual  if all  original materials, including
  109.        disks and  backup copies of the disks, and documentation are delivered
  110.        to the  transferee.   You may  terminate this  license at  any time by
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.        destroying all  original materials as well as all backup copies of the
  119.        software.
  120.  
  121.        You may  transfer the  software to a single floppy disk or single hard
  122.        disk for  the purpose  of using  the software.    You may make two (2)
  123.        backup copies of the software for security purposes.
  124.  
  125.  
  126.  
  127.  
  128.                                   Limited Warranty
  129.  
  130.        This program  assumes the  user is  thoroughly knowledgeable  with DOS
  131.        operations and the particular data that is edited, and that steps will
  132.        be taken  to prevent  accidental loss of data by maintaining separate,
  133.        timely backups.   Every  effort has  been made  to  assure  that  this
  134.        program satisfies  the expressed  goal of  editing random  data files.
  135.        However, the Shareware evaluation (trial use) version is provided AS
  136.        IS.  CMD Data Services MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR
  137.        IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
  138.        MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
  139.  
  140.  
  141.  
  142.  
  143.                                Additional Information
  144.  
  145.        You should read the files README.DOC, WARRANTY.DOC, LICENSE.DOC, and
  146.        SHR-WARE.DOC supplied with the software.  It contains other important
  147.        information about EDITRAND and shareware.  README.DOC may include any
  148.        additional information that did not make it into the documentation
  149.        before it went to the printer.  The supplied disk also contains soft
  150.        copies of the forms found in Appendix B of this manual, such as the
  151.        EDITRAND Bug Report/Enhancement Request Form.  Such forms have the
  152.        extension .FRM.  You can print copies of these forms for your use.
  153.  
  154.  
  155.  
  156.                    * * * * * * * * * * * * * * * * * * * * * * * *
  157.  
  158.  
  159.  
  160.                                       WARNING
  161.  
  162.        EDITRAND is  intended to  be used  with files that are evenly blocked,
  163.        that is,  whose total  file size  is evenly  divisible  by  the  user-
  164.        specified record  size.   Although EDITRAND is capable of browsing and
  165.        editing any DOS file, please be cautious since it is possible to alter
  166.        the length of a file using EDITRAND, such as with the APPEND or DELETE
  167.        record  operations.    Such  an  operation  on  a  data  file  with  a
  168.        proprietary format  or an  executable (.EXE  or .COM)  could render it
  169.        useless.
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.        REMEMBER: IT  IS POSSIBLE  TO DESTROY  ANY DOS  FILE WITH THE EDITRAND
  178.        PROGRAM IF  THE EDITRAND  USER IS NOT INTIMATELY FAMILIAR WITH THE DOS
  179.        OPERATING SYSTEM AND FILE STRUCTURES.
  180.  
  181.        It is strongly advised that any user of the EDITRAND program read this
  182.        entire manual before attempting to use the program.
  183.  
  184.  
  185.  
  186.  
  187.  
  188.         Be sure  to read  the tutorial  in Appendix  C in  the back  of  the
  189.         manual.
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.                                EDITRAND Customization
  234.  
  235.        If you  have special  editing  requirements  that  EDITRAND  does  not
  236.        address, CMD Data Services also provides customization of the EDITRAND
  237.        program.  For example, EDITRAND could be tailored to:
  238.  
  239.             1.     Intelligently load and handle  specified
  240.                    proprietary data file formats.
  241.  
  242.             2.     Handle alternate character sets.
  243.  
  244.             3.     Generate indexes or format/prefill records and
  245.                    fields to specification.
  246.  
  247.             4.     Perform any specific editing through a defined
  248.                    function key or other triggering mechanism.
  249.  
  250.        If interested,  please submit  a letter  of intention,  outlining your
  251.        requirements to:
  252.  
  253.             Scott Whitehead
  254.             CMD Data Services
  255.             10413 Firethorn Lane
  256.             Austin, TX 78750-1740
  257.  
  258.        Please include  a summary  technical description of your requirements.
  259.        An immediate  response will  be sent  to verify  that your request has
  260.        been received, and a detailed response, including cost estimates, will
  261.        be forthcoming 2 to 4 weeks later.
  262.  
  263.  
  264.                    * * * * * * * * * * * * * * * * * * * * * * * *
  265.  
  266.                                   EDITRAND Support
  267.  
  268.        For technical  assistance with  EditRand, the  preferred channel is on
  269.        Compuserve, ID  70701,2123. Email is checked several times a week, and
  270.        more thought  can be given to questions and concerns before responding
  271.        in this way.
  272.  
  273.        For licensing  or customization questions, or technical questions from
  274.        registered  customers,  call  512-335-0579.    For  a  bug  report  or
  275.        enhancement request,  it is  preferable  to  fill  out  and  send  the
  276.        supplied Report Form (see Appendix B).
  277.  
  278.        NOTE:  Technical assistance will NOT be given to UNREGISTERED users on
  279.        the phone,  but I  will answer  any and  all questions  from anyone on
  280.        Compuserve.
  281.  
  282.  
  283.  
  284.  
  285.  
  286.                                       EditRand
  287.             ------------------------------------------------------------
  288.  
  289.                                  Table of Contents
  290.  
  291.               INTRODUCTION.............................................1
  292.               WARNING/DISCLAIMER.......................................4
  293.               INSTALLATION.............................................4
  294.               EXECUTING EDITRAND, switches.............................6
  295.               BROWSE MODE, description................................14
  296.               SUMMARY OF BROWSE MODE FUNCTIONS........................17
  297.               BROWSE MODE FUNCTIONS...................................18
  298.                 LOAD new file to be edited............................18
  299.                   FILE SELECTION WINDOW...............................21
  300.                 EDIT the current record...............................23
  301.                 FETCH next or previous record.........................23
  302.                 FETCH first or last record in file....................23
  303.                 FETCH absolute record.................................24
  304.                 FETCH relative record.................................24
  305.                 COUNT word occurrences................................24
  306.                 COUNT next word occurrences...........................24
  307.                 SEARCH for a string...................................24
  308.                 SEARCH for NEXT string occurrence.....................24
  309.                 FETCH record via absolute byte number.................25
  310.                 INVERSE video rule lines..............................25
  311.                 BOUNDS - Change string operation boundaries...........25
  312.                 ABORT program, lose changes and update ER.INI.........25
  313.                 QUIT program, save changes and update ER.INI..........26
  314.               EDIT MODE...............................................27
  315.               SUMMARY OF EDIT MODE FUNCTIONS..........................28
  316.                 Basic Navigation Functions............................31
  317.                   GO to adjacent characters...........................31
  318.                   GO to next or previous tab position.................31
  319.                   GO to first or last character within Field Bounds...31
  320.                   FETCH next or previous record.......................31
  321.                   FETCH first or last record in file..................31
  322.                   FETCH record via absolute byte number...............31
  323.                 Primary String Functions..............................33
  324.                   COUNT word occurrences..............................33
  325.                   COUNT word occurrences, repeat......................33
  326.                   SEARCH for a string.................................34
  327.                   SEARCH for NEXT string occurrence...................34
  328.                   REPLACE string......................................35
  329.                   REPLACE NEXT repeat previous REPLACE command........39
  330.                 Record Functions......................................40
  331.                   CUT field bounds string into scratchpad.............40
  332.                   PASTE scratchpad into currently displayed record....40
  333.                   APPEND new record...................................41
  334.                   DELETE record.......................................42
  335.                   UNDELETE record or UNDO changes.....................43
  336.             ------------------------------------------------------------
  337.                                           i
  338.  
  339.  
  340.  
  341.  
  342.  
  343.                                       EditRand
  344.             ------------------------------------------------------------
  345.  
  346.                                  Table of Contents
  347.  
  348.                   DELETE RANGE of records.............................43
  349.                   DYNAMIC Field Boundaries............................45
  350.                   Change COLOR of record area.........................45
  351.                   CASE Alter..........................................46
  352.                   FIND deleted record.................................47
  353.                   SORT on field bounds interval.......................47
  354.                 Editing Functions.....................................49
  355.                   TEXT/HEX entry mode.................................49
  356.                   BINARY NUMBER.......................................49
  357.                   DISPLAY BINARY NUMBER...............................50
  358.                   TAB stop on/off.....................................50
  359.                   TAB increment.......................................52
  360.                   TAB toggle tab stops off/on.........................53
  361.                   TAB stops reset to null.............................53
  362.                   BOUNDS change.......................................54
  363.                   BOUNDS Reset........................................55
  364.                   CLEAR field bounds..................................55
  365.                   CLEAR to end of record..............................55
  366.                   UPDATE dBASE Header Record Count....................55
  367.                 Miscellaneous Functions...............................56
  368.                   SAVE AS to another file.............................56
  369.                   INVERSE video rule lines............................58
  370.                   EXIT to Browse mode.................................58
  371.                   PURGE DELETIONS.....................................58
  372.                   TOGGLE prompt to purge deleted records..............59
  373.                 APPENDIX A - Ancillary String Functions...............60
  374.                 APPENDIX B - EDITRAND Forms...........................62
  375.                 APPENDIX C - EDITRAND Tutorial........................63
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.             ------------------------------------------------------------
  394.                                          ii
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.                                       EditRand
  402.        ----------------------------------------------------------------------
  403.  
  404.  
  405.  
  406.                                     INTRODUCTION
  407.  
  408.  
  409.  
  410.             EDITRAND is  a utility  that allows  the user  to browse and
  411.             edit any  data file  containing  records  of  static,  equal
  412.             length.   Most high  level programming languages create this
  413.             type of  data file, and is typically referred to as a RANDOM
  414.             file.   This is  due to  the fact  that   any  record can be
  415.             accessed randomly,  or directly, without the need to process
  416.             the entire  file searching  for the  desired record.   Also,
  417.             data files  created by  many database systems (such as dBASE
  418.             III) can  be handled  by  EDITRAND,  even  if  they  have  a
  419.             proprietary  header (see page 9).
  420.  
  421.             Each record is displayed with underlying rules to allow easy
  422.             field and  byte level  checking.   One record  at a  time is
  423.             displayed in  its entirety, along with pertinent information
  424.             such as  absolute record  number, absolute and relative byte
  425.             position, record  and field  boundaries, header  offset, and
  426.             hex/decimal representation.
  427.  
  428.             EDITRAND can  be used  to analyze  random data  in ways  not
  429.             possible using  the program  that created  the data.   Using
  430.             EDITRAND, data  can be  viewed exactly as it exists on disk,
  431.             allowing  speedy   verification  of   program   output   and
  432.             intelligent troubleshooting  of problem  situations.   Avoid
  433.             long hours of testing - use EDITRAND to peek at those random
  434.             files and  find  the  exact  fields  and  records  that  are
  435.             suspected of  being corrupt or invalid.  Have you found that
  436.             an application  will not  allow a  change that  is  desired?
  437.             Load the  data file  into EDITRAND, swiftly make the desired
  438.             changes, and  put the  data back  into operation  without  a
  439.             lengthy waiting period.
  440.  
  441.             EDITRAND can  be used  to operate  on any  random data file.
  442.             Key features:
  443.  
  444.             *      Browse and  edit random data files produced by any
  445.                    program, regardless of record structure.
  446.  
  447.             *      Display an  entire record  on the  screen  at  one
  448.                    time.
  449.  
  450.  
  451.        ----------------------------------------------------------------------
  452.        Introduction                                                Page 1
  453.  
  454.  
  455.  
  456.  
  457.  
  458.                                       EditRand
  459.        ----------------------------------------------------------------------
  460.  
  461.  
  462.             *      Determine exact  location of  data fields with the
  463.                    use of ruled display and user definable tab stops.
  464.  
  465.             *      Full text,  hexidecimal, binary  numeric and ASCII
  466.                    data editing.
  467.  
  468.             *      Flat data  files, data  files with any proprietary
  469.                    header, or dBASE III format files.
  470.  
  471.             *      Cursor key  navigation  just  like  ordinary  text
  472.                    editors.
  473.  
  474.             *      Perform standard editing functions such as Search,
  475.                    Replace, Word Count, Cut and Paste.
  476.  
  477.             *      Perform record  functions such  as Append, Delete,
  478.                    Copy, Move and Sort.
  479.  
  480.             *      Full featured  binary number  operations (IEEE  or
  481.                    Microsoft Binary Format).
  482.  
  483.             *      Restrict operations  to a  range of records and/or
  484.                    range of  columns (this  allows the  user to focus
  485.                    operations on a particular data field)
  486.  
  487.             *      Expand or  collapse record  size by  inserting  or
  488.                    deleting a new field anywhere in the record
  489.  
  490.             *      Undelete/Undo changes to records
  491.  
  492.             *      Create backup files for security purposes
  493.  
  494.             *      On line  help screen  showing all defined function
  495.                    keys
  496.  
  497.             *      Works on files up to 2 gigabytes in size
  498.  
  499.             *      Maximum record length is:
  500.  
  501.                    ˛  1600 bytes  per record in standard 80 X 25 text
  502.                    mode,
  503.  
  504.                    ˛  3040 bytes  per record  in 80  X 43  mode  (EGA
  505.                    required),
  506.  
  507.  
  508.        ----------------------------------------------------------------------
  509.        Introduction                                                Page 2
  510.  
  511.  
  512.  
  513.  
  514.  
  515.                                       EditRand
  516.        ----------------------------------------------------------------------
  517.  
  518.  
  519.                    ˛  3600 bytes  per record  in 80  X 50  mode  (VGA
  520.                    required).
  521.  
  522.  
  523.  
  524.             Edit entry  operations include  standard text,  hex,  binary
  525.             (string to  binary number conversion), and full ASCII entry.
  526.             String operations  include Search,  Search NOT, Search Next,
  527.             Replace, Replace  Global, Replace w/Confirm, Word Count, and
  528.             Word NOT  Count performed  in text,  hex, binary  numeric or
  529.             ASCII; also  strings may  be cut  into a  scratchpad  to  be
  530.             inserted (pasted)  elsewhere.   In addition  records may  be
  531.             copied, moved, deleted, appended, and sorted.
  532.  
  533.             Central to  most string operations is the concept of Bounds,
  534.             which allows  the user  to focus on a range of records and a
  535.             particular field  across the range of records.  By confining
  536.             a string  operation to  such  Bounds  (such  as  Replace  or
  537.             Search), all  strings outside  the Bounds  will be  ignored.
  538.             See the section on Bounds on page 54.
  539.  
  540.             The primary goal of this program is to be able to operate on
  541.             random data  files of unlimited size, so that the ability to
  542.             edit a  particular file  is  not  dependent  upon  available
  543.             Random Access Memory to store it in during the edit session.
  544.             Therefore, this  program  edits  directly  to  disk.    This
  545.             naturally presents  an element  of danger since changes made
  546.             in this  manner cannot  be directly  undone or  aborted.  To
  547.             overcome this  situation, a  backup of  the edited  file  is
  548.             created from  which record  changes are  undone and  through
  549.             which an entire edit session can be aborted.  This backup is
  550.             named by  stripping off  the name  of the file to be edited,
  551.             and giving  it the  extension .ERB.   For example, the input
  552.             file ACCOUNTS.DAT  would cause  the backup file ACCOUNTS.ERB
  553.             to be  created.   If there  is not enough disk space for the
  554.             backup file,  the  program  will  terminate  with  an  error
  555.             message.  Also, the sort function requires no additional RAM
  556.             or disk space, as it sorts the main working file directly on
  557.             disk after  removing any  deleted records.   Sorting in this
  558.             manner is  typically slow,  but again  assures the user that
  559.             file size is not an issue.
  560.  
  561.  
  562.  
  563.  
  564.  
  565.        ----------------------------------------------------------------------
  566.        Introduction                                                Page 3
  567.  
  568.  
  569.  
  570.  
  571.  
  572.                                       EditRand
  573.        ----------------------------------------------------------------------
  574.  
  575.             WARNING - PLEASE READ:  EDITRAND is intended to be used with
  576.             files that  are evenly  blocked, that  is, whose  total file
  577.             size is  evenly divisible by the user-specified record size.
  578.             This typically  means random  data files.   For example, any
  579.             file created as RANDOM by the BASIC programming language, or
  580.             as a  file of  Records in C or Pascal.  Although EDITRAND is
  581.             capable of  browsing and  editing any  DOS file,  please  be
  582.             cautious since  it is possible to alter the length of a file
  583.             using EDITRAND,  such as  with the  APPEND or  DELETE record
  584.             operations.   Such an  operation  on  a  data  file  with  a
  585.             proprietary format  or an  executable (.EXE  or .COM)  would
  586.             render it useless.
  587.  
  588.             REMEMBER: IT  IS POSSIBLE  TO DESTROY  ANY DOS FILE WITH THE
  589.             EDITRAND PROGRAM  IF THE  EDITRAND USER  IS  NOT  INTIMATELY
  590.             FAMILIAR WITH THE DOS OPERATING SYSTEM AND FILE STRUCTURES.
  591.  
  592.             It is strongly advised that any user of the EDITRAND program
  593.             read  this  entire  manual  before  attempting  to  use  the
  594.             program.
  595.  
  596.  
  597.  
  598.             DISCLAIMER:   This program  assumes the  user is  thoroughly
  599.             knowledgeable with  DOS operations  and the  particular data
  600.             that is  edited, and  that steps  will be  taken to  prevent
  601.             accidental loss  of data  by  maintaining  separate,  timely
  602.             backups.   Every effort  has been  made to  assure that this
  603.             program satisfies  the expressed goal of editing random data
  604.             files.   However, the  software and  documentation have been
  605.             provided "as is."  No warranty is made by the author whether
  606.             expressed or  implied.   Fitness  for  any  task  is  solely
  607.             determined by the user.
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.                                     INSTALLATION
  618.  
  619.  
  620.  
  621.  
  622.        ----------------------------------------------------------------------
  623.        Introduction                                                Page 4
  624.  
  625.  
  626.  
  627.  
  628.  
  629.                                       EditRand
  630.        ----------------------------------------------------------------------
  631.  
  632.  
  633.             To install  EDITRAND, simply  copy the  file ER.EXE  onto  a
  634.             working  diskette   or  hard   drive,  depending  upon  your
  635.             particular needs.   In  order that  EDITRAND may be executed
  636.             from any  drive or  subdirectory, make sure that the current
  637.             PATH environment variable contains the subdirectory in which
  638.             ER.EXE is installed.
  639.  
  640.             Be aware  that EDITRAND will create its defaults file ER.INI
  641.             in the current default subdirectory any time it is executed.
  642.             This is to allow customized settings for particular files or
  643.             sets of files.  For more information, see page 13.
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.        ----------------------------------------------------------------------
  680.        Introduction                                                Page 5
  681.  
  682.  
  683.  
  684.  
  685.  
  686.                                       EditRand
  687.        ----------------------------------------------------------------------
  688.  
  689.                                  EXECUTING EDITRAND
  690.  
  691.  
  692.  
  693.             EDITRAND can  be executed two ways - by passing as arguments
  694.             the name and record length of the desired file, or by simply
  695.             executing with  no arguments.   When  EDITRAND is exited, an
  696.             initialization file  called ER.INI  is  created  within  the
  697.             current working  subdirectory.   This file  contains various
  698.             items of  information about  the previous edit session, such
  699.             as file  name and  record length.  It is this initialization
  700.             file that  makes it  possible to  execute EDITRAND  with  no
  701.             arguments -  the previously  edited file  will  be  reloaded
  702.             using  the   same  record   length  and   general  operating
  703.             environment. There are two methods of  executing EDITRAND:
  704.  
  705.                       Method one:   ER filename recordlength [switches]
  706.  
  707.                       Method two:   ER [switches]
  708.  
  709.             The first  time EDITRAND is executed method one will have to
  710.             be used  since there will be no initialization file present.
  711.             Also, (if  ER.INI  is  present)  EDITRAND  may  be  executed
  712.             passing only  the filename,  in which case the record length
  713.             used in  the previous  session (as  found in ER.INI) will be
  714.             used.   The EDITRAND  user must  determine the proper record
  715.             length used by EDITRAND.  EDITRAND will not try to guess the
  716.             correct record  length, except  to default  to 1600 bytes if
  717.             ER.INI is not found and no record length is specified.
  718.  
  719.             Several command  line switches  are available when executing
  720.             EDITRAND:
  721.  
  722.             /N     No Backup  - Prevent  a backup from being created.
  723.                    This switch  is available  if you  need to  edit a
  724.                    file but  do not  have sufficient  disk  space  to
  725.                    create a  backup.   Use  this  switch  with  GREAT
  726.                    CAUTION as  any changes made are permanent as soon
  727.                    as the changes are made:
  728.  
  729.                       YOU CANNOT ABORT FROM AN EDIT SESSION
  730.                       THAT IS STARTED WITH THE /N COMMAND LINE
  731.                       SWITCH.  ANY CHANGES YOU MAKE WILL BE
  732.                       PERMANENT.
  733.  
  734.  
  735.  
  736.        ----------------------------------------------------------------------
  737.        Executing                                                     Page 6
  738.  
  739.  
  740.  
  741.  
  742.  
  743.                                       EditRand
  744.        ----------------------------------------------------------------------
  745.  
  746.                       [A warning message is displayed on the bottom line]
  747.  
  748.                    For this  reason, it  is advisable that you make a
  749.                    separate backup  (perhaps onto floppy disk) of the
  750.                    file to be edited prior to executing EDITRAND with
  751.                    the /N switch.
  752.  
  753.  
  754.             /B     Browse Only - This is a variation of the /N switch
  755.                    without the  danger  involved.    Use  of  the  /B
  756.                    command line  switch prevents  a backup from being
  757.                    created but  also disables  edit mode.  (Note that
  758.                    the browse  mode function  prompts on  the  bottom
  759.                    line and  the help  screen [Alt-H] are modified to
  760.                    reflect the  lack of  edit capabilities.)   The /B
  761.                    command line switch should be used when it is only
  762.                    desired to  verify the  contents of a file without
  763.                    the need for alteration.
  764.  
  765.             /E     Erase Backup files - This command line switch will
  766.                    erase backup  files after  the session is finished
  767.                    with them.   Backup files have the extension .ERB.
  768.                    Backup files will continue to be made for undelete
  769.                    and edit  abort purposes,  but will  be deleted as
  770.                    different files  are Loaded  or when  EDITRAND  is
  771.                    exited.   This means  that although  a file can be
  772.                    rescued from  unintentional changes  before ending
  773.                    its session, restoring a file after its session is
  774.                    ended is  impossible since  its backup  will  have
  775.                    been erased by EDITRAND.
  776.  
  777.                    The above  switches /N,  /B, and  /E are  mutually
  778.                    exclusive; only  one at  a time  can be  used.  If
  779.                    more than  one is  specified, only  the  first  is
  780.                    honored.
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.        ----------------------------------------------------------------------
  794.        Executing                                                     Page 7
  795.  
  796.  
  797.  
  798.  
  799.  
  800.                                       EditRand
  801.        ----------------------------------------------------------------------
  802.  
  803.             /M     Use Microsoft  Binary Format  - The default binary
  804.                    numeric representation  is IEEE.   If  you wish to
  805.                    use the  older MBF representation use this switch.
  806.                    The string  MBF will  appear on  the left  of  the
  807.                    status line.   Please  note that the binary format
  808.                    utilized  by   the  application  program  used  to
  809.                    maintain the data should be used when editing such
  810.                    files.   In other words, if the parent application
  811.                    uses MBF  format and  you make changes to its data
  812.                    file using  the default IEEE format, the next time
  813.                    the application  accesses such  an altered number,
  814.                    it will  NOT be  the value  intended but something
  815.                    entirely different.   This point does not apply to
  816.                    numeric fields  that are  maintained in pure ASCII
  817.                    format.
  818.  
  819.             /I     Use IEEE numeric format.  Since IEEE format is the
  820.                    default format, the /I switch has effect only when
  821.                    loading a  file after starting EDITRAND (using the
  822.                    "L" command),  and the  previous mode  was MBF  as
  823.                    imposed by the /M switch.
  824.  
  825.             /D[T]  Load File  as dBASE  III.   This switch will cause
  826.                    EDITRAND to  load the  specified files  as a dBASE
  827.                    III file.  This causes the following effects:
  828.  
  829.                            1.   The dBASE header is treated as an
  830.                                 offset, the same as would occur if
  831.                                 you used the /O switch.
  832.  
  833.                            2.   The dBASE record length is used as
  834.                                 the EDITRAND record length.  After
  835.                                 loading, you should see only one
  836.                                 dBASE record at a time on the screen.
  837.  
  838.                    Once a  file has  been loaded as a dBASE III file,
  839.                    EDITRAND will  attempt to  load  all  subsequently
  840.                    loaded files  as dBASE  III files.   To switch off
  841.                    dBASE mode,  use the  /On  switch  (/O0  for  zero
  842.                    offset is also legal.)
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.        ----------------------------------------------------------------------
  851.        Executing                                                     Page 8
  852.  
  853.  
  854.  
  855.  
  856.  
  857.                                       EditRand
  858.        ----------------------------------------------------------------------
  859.  
  860.                    [T]     This optional  switch will  cause EDITRAND
  861.                    to read  the  field  definitions  from  the  dBASE
  862.                    header, and set the EDITRAND tabs to these fields.
  863.                    This will cause any previous tab definitions to be
  864.                    lost.   EDITRAND will  also read  the names of the
  865.                    dBASE  fields,   their  field  type  (like  C  for
  866.                    character), length  and decimals  and display them
  867.                    on the  status line  as you navigate in Edit mode.
  868.                    This switch  must be  used in conjunction with the
  869.                    /D switch and should appear as /DT.
  870.  
  871.                    NOTE:  Other  than  interpreting  the  header  and
  872.                    record  length,   EDITRAND  performs   NO   dBASE-
  873.                    intelligent   operations   automatically.      For
  874.                    example, EDITRAND  will  not  update  the  header,
  875.                    recover damaged files, or generate indexes.  It is
  876.                    up to  the user  of EDITRAND  to understand  dBASE
  877.                    file structures  and  make  the  changes  manually
  878.                    using  EDITRAND's   basic  functions.    The  only
  879.                    exception is  the use  of the  Update dBASE Header
  880.                    function (see page 55); with this function you can
  881.                    update the  record count  as  held  in  the  dBASE
  882.                    header.
  883.  
  884.  
  885.             /On    Create header  offset.   Use of  this switch  will
  886.                    cause EDITRAND  to treat  the first n bytes of the
  887.                    file  as  an  offset  header.    This  means  that
  888.                    viewing of  records will  begin at byte number n +
  889.                    1, and  the first  n bytes  will not be visible or
  890.                    available for  editing. *   A  denotation of  this
  891.                    offset appears  on line  2 of the display, just to
  892.                    the right  of the Record and Field boundary status
  893.                    indicators:
  894.  
  895.                       R:nnn-nnn  F:nnn-nnn  H: nnn
  896.  
  897.                    The maximum  allowable offset is the pre-edit file
  898.                    size.
  899.  
  900.                    Ø Header offset is recorded in ER.INI.
  901.  
  902.        ____________________
  903.             * If it is necessary to make changes to the header, you must
  904.                  reload the same file without the use of the /On switch.
  905.  
  906.  
  907.        ----------------------------------------------------------------------
  908.        Executing                                                     Page 9
  909.  
  910.  
  911.  
  912.  
  913.  
  914.                                       EditRand
  915.        ----------------------------------------------------------------------
  916.  
  917.  
  918.                    The above  switches /D[T]  and  /On  are  mutually
  919.                    exclusive.   If both switches are specified, /D[T]
  920.                    takes precedence  if the  loaded file  has a dBASE
  921.                    structure.
  922.  
  923.  
  924.  
  925.             /Vn    Video Mode.   This  switch can  be used  to  force
  926.                    EDITRAND to  use 25,  43 or  50 line  mode.   This
  927.                    switch is  only valid  if EDITRAND is running on a
  928.                    color monitor.  Legal values for n are 25, 43, and
  929.                    50.   You must  have an  EGA or VGA to specify 43,
  930.                    and you must have a VGA monitor to specify 50.  In
  931.                    43 line  mode, the  maximum record  length is 3040
  932.                    bytes, and  in 50  line mode  the  maximum  record
  933.                    length is  3600 bytes.   Also,  if you  attempt to
  934.                    load a  file whose  record length  is greater than
  935.                    the current  maximum record  length, EDITRAND will
  936.                    adjust to  43 or  50 line mode if the monitor type
  937.                    will allow it.  In other words, if you are running
  938.                    in 80  X 25  mode in  DOS and  load a  file  whose
  939.                    record length is 3450 bytes, EDITRAND will attempt
  940.                    to automatically  switch to  50 line  mode without
  941.                    the use of the /V50 switch.
  942.  
  943.             /MONO  Force   Monochrome.       EDITRAND   attempts   to
  944.                    automatically detect  the  type  of  monitor  upon
  945.                    which it  is  running.    However,  there  may  be
  946.                    occasions when  it is  desirable to use monochrome
  947.                    color attributes  even though  the default monitor
  948.                    is color.  For example, on a plasma screen that is
  949.                    detected as  a color  monitor, the  combination of
  950.                    colors used may be difficult to look at; in such a
  951.                    case it  may be  preferable  to  force  monochrome
  952.                    attributes.   If monochrome  is being  used, color
  953.                    attributes can  be restored  by  using  the  /MONO
  954.                    switch again.
  955.  
  956.                    Ø Monochrome setting is recorded in ER.INI.
  957.  
  958.  
  959.             Unless the /N switch is used, a backup of the edited file is
  960.             created from which editing changes are undone and from which
  961.             an entire  edit session  can be  aborted.   The name  of the
  962.  
  963.  
  964.        ----------------------------------------------------------------------
  965.        Executing                                                    Page 10
  966.  
  967.  
  968.  
  969.  
  970.  
  971.                                       EditRand
  972.        ----------------------------------------------------------------------
  973.  
  974.             backup file  is extracted  from the  name of  the file to be
  975.             edited -  the main file name is used and given the extension
  976.             .ERB (stands  for EDITRAND  Backup).  In other words, if the
  977.             file to  be edited  is INVENTRY.PTF, the backup created will
  978.             be called  INVENTRY.ERB.  If a file by the same name already
  979.             exists, it will be erased WITHOUT WARNING.
  980.  
  981.             Command line  switches may  be included  with or without any
  982.             other command  line arguments  (such as file name and record
  983.             length).   Switches  remain  in  effect  until  EDITRAND  is
  984.             exited.   However, switches  can be  changed or negated with
  985.             the use  of the  Load function  (see the  explanation of the
  986.             Load function  on page  18).   For example,  if EDITRAND  is
  987.             started with  the /N  switch, no backups will be created for
  988.             any files Loaded unless a new switch is specified.
  989.  
  990.             If neither the /N nor the /B switches is used, EDITRAND will
  991.             not permit  loading of  a file  with the  extension ERB.  In
  992.             other words, the file PARTS.ERB cannot be edited because its
  993.             pertinent backup file name is also PARTS.ERB.
  994.  
  995.             EDITRAND will  attempt to create the backup file on the same
  996.             drive and  subdirectory as the target file ("target file" is
  997.             the file that is being edited).  If there is not enough disk
  998.             space  to   create   the   backup   in   the   target   file
  999.             drive/subdirectory, EDITRAND  will then  check to  verify if
  1000.             the target file is on a drive other than the current default
  1001.             drive.   If so,  an attempt will be made to store the backup
  1002.             in the  current subdirectory  of the  current default drive.
  1003.             This is  done primarily  to assist editing of large files on
  1004.             floppy disks,  where insufficient disk space is available on
  1005.             the floppy  disk.   Be aware that this possibility exists if
  1006.             an attempt  is made  to restore  from a  backup file, as the
  1007.             desired backup may not be in the same location as the target
  1008.             file.
  1009.  
  1010.             When loading  a new file, whether from the DOS command line,
  1011.             or using the Load function, you may see the message:
  1012.  
  1013.                           WARNING - Last Record Truncated
  1014.  
  1015.             If this  message appears,  it means  that the  size  of  the
  1016.             current file is not evenly divisible by the specified record
  1017.             size, and the last physical record is not a full record.  If
  1018.             the /On  header offset  switch was  used, this could have an
  1019.  
  1020.  
  1021.        ----------------------------------------------------------------------
  1022.        Executing                                                    Page 11
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.                                       EditRand
  1029.        ----------------------------------------------------------------------
  1030.  
  1031.             effect.  Proceed with caution, as this is an indication that
  1032.             something may  not be  right - either the loaded file is not
  1033.             the file  that was intended, or the correct header offset or
  1034.             record size  was not used.  It is possible to destroy a file
  1035.             using APPEND Record and DELETE Record in this circumstance.
  1036.  
  1037.             RELATED FILES  - If  a data  file  edited  by  EDITRAND  has
  1038.             pertinent, separate  index files or other related data files
  1039.             created by  another software  program,   EDITRAND operations
  1040.             have no  dependency or  requirements for  such   files.   If
  1041.             changes made  using EDITRAND  cause such  an index  file  or
  1042.             other file  to become  invalid, it  is the  EDITRAND  user's
  1043.             responsibility to  re-generate indexes  or make  changes  to
  1044.             other files outside of EDITRAND.
  1045.  
  1046.             See the  Load command  on page 18 for more information about
  1047.             files.
  1048.  
  1049.             Please note  that throughout  the remainder  of this manual,
  1050.             various items  are denoted  with Ø.  This indicates that the
  1051.             item described  is saved  in the initialization file ER.INI,
  1052.             to be  reloaded and used the next time EDITRAND is executed.
  1053.             In summary, these items are:
  1054.  
  1055.                  *    File name
  1056.  
  1057.                  *    Record length
  1058.  
  1059.                  *    Header offset
  1060.  
  1061.                  *    Case setting
  1062.  
  1063.                  *    Record View setting
  1064.  
  1065.                  *    Tab stops
  1066.  
  1067.                  *    Tab increment
  1068.  
  1069.                  *    Field bounds
  1070.  
  1071.                  *    Rule line video setting
  1072.  
  1073.                  *    Monochrome setting
  1074.  
  1075.                  *    Offset display format (hex or decimal)
  1076.  
  1077.  
  1078.        ----------------------------------------------------------------------
  1079.        Executing                                                    Page 12
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.                                       EditRand
  1086.        ----------------------------------------------------------------------
  1087.  
  1088.  
  1089.                  *    Offset shown from beginning of record or field
  1090.  
  1091.                  *    Prompt to purge deleted records
  1092.  
  1093.             By  default,  ER.INI  is  created  in  the  current  default
  1094.             subdirectory.   This allows  for multiple environments, with
  1095.             different tab  settings, etc.   That is, a copy of ER.INI is
  1096.             created everywhere  you execute  EDITRAND.   However, it  is
  1097.             possible to  cause EDITRAND  to use  one, centrally  located
  1098.             copy of  ER.INI with the use of an environment variable.  If
  1099.             you wish  to take  advantage of  this  option,  include  the
  1100.             following statement in your AUTOEXEC.BAT file:
  1101.  
  1102.                  SET ERINIPATH=d:\mypath
  1103.  
  1104.             where d:\mypath  is the  full path  of the  subdirectory  in
  1105.             which you wish EDITRAND to maintain a single copy of ER.INI.
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.        ----------------------------------------------------------------------
  1136.        Executing                                                    Page 13
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.                                       EditRand
  1143.        ----------------------------------------------------------------------
  1144.  
  1145.                                     BROWSE MODE
  1146.  
  1147.  
  1148.             When the  program first  loads into  memory and displays the
  1149.             input file,  the first  record appears, and the program will
  1150.             be in  Browse mode.  Line 1 of the display contains the name
  1151.             of the  current file,  date  and  time  the  file  was  last
  1152.             modified (MM-DD-YY HH:MM:SS), size of the file versus record
  1153.             length, and  current record  number versus  total number  of
  1154.             records.  For example:
  1155.  
  1156.                  C:\1099INFO.DAT 05-11-88 15:36:07 | Size: 7168/128 |
  1157.             Record: 1/56
  1158.  
  1159.             If there  is insufficient space for the full file path name,
  1160.             the left  end of  the file  path name  will be truncated and
  1161.             "..." will  be appended.   For  example, if  the file  to be
  1162.             edited is
  1163.  
  1164.                  E:\CUSTOMER\ACCOUNTS\RECVBLE\DELNQUNT\1988\MYERS.DAT
  1165.  
  1166.             it may appear as
  1167.  
  1168.                  E:<>CVBLE\DELNQUNT\1988\MYERS.DAT
  1169.  
  1170.             Line 2 of the display shows Record and Field Bounds and byte
  1171.             offsets (Beginning and Ending absolute byte positions of the
  1172.             current record).  For example:
  1173.  
  1174.                  R:1-56  F:1-128                    Beg:2817  End:2944
  1175.  
  1176.             The  numbers  1-56  following  R:  represent  the  currently
  1177.             defined range of records (also referred to as record bounds)
  1178.             and the  numbers 1-128  following F: represent the currently
  1179.             defined  field  bounds.    The  beginning  and  ending  byte
  1180.             positions can  be displayed  in  hexidecimal  representation
  1181.             with the Alt-F1 function key.
  1182.  
  1183.             Line two can also display header offset if a header has been
  1184.             specified.  See page 9 for a description of header offsets.
  1185.  
  1186.             The number  of lines  devoted to  record  display  can  vary
  1187.             according to what display mode EDITRAND is in.  For example,
  1188.             in standard  80 X 25 text mode, lines 3 through 22 are used;
  1189.             in 80  X 50  mode lines  3 through  47 are used.  The status
  1190.  
  1191.  
  1192.        ----------------------------------------------------------------------
  1193.        Browse Mode                                                   Page 14
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.                                       EditRand
  1200.        ----------------------------------------------------------------------
  1201.  
  1202.             line (the  line above the bottom line of the screen) is used
  1203.             for messages  and various  prompts, and  the bottom  line is
  1204.             used primarily for function key prompts.
  1205.  
  1206.             The data  display area is set up as a set of lines depicting
  1207.             a record as broken up into contiguous 80 character segments.
  1208.             Each 80  character segment will be underlined with a rule by
  1209.             which the  exact position  of a particular field or byte can
  1210.             be readily  ascertained.   Example  of  a  400  byte  record
  1211.             display can  be seen in Figure 1, using a mock employee data
  1212.             record.   Notice that  the ending  zero (0)  of each 10 byte
  1213.             interval  number   will  be  highlighted  when  EDITRAND  is
  1214.             executed.  This is to indicate that the byte position of the
  1215.             zero is the actual ordinal position indicated by the number.
  1216.             For example:
  1217.  
  1218.                       |..180....|..190..
  1219.                            ^
  1220.                            This position is byte 180
  1221.  
  1222.             If the  record length is not a multiple of 80, then the last
  1223.             rule line will be truncated.
  1224.  
  1225.             To allow  for longer  record lengths,  a single generic rule
  1226.             line is  employed when  there is  not sufficient room in the
  1227.             record display  area for standard rules.  A generic rule has
  1228.             no  numbers,   only  graduation  marks  at  5  and  10  byte
  1229.             intervals, and  is located  at  the  bottom  of  the  record
  1230.             display area.
  1231.  
  1232.             The rules by default will appear on a blue background (black
  1233.             on a  monochrome monitor).   They  can  be  made  to  appear
  1234.             inversely on  a white background by pressing Alt-I in either
  1235.             Browse or Edit mode.  See INVERSE function on page 58.
  1236.  
  1237.             No editing  operations are  allowed in Browse mode, but many
  1238.             other functions  are available.    The  definitions  of  the
  1239.             Browse Mode functions follow.
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.        ----------------------------------------------------------------------
  1250.        Browse Mode                                                   Page 15
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.                                       EditRand
  1257.        ----------------------------------------------------------------------
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264. C:\DATA\1990\IRS.001    09-06-91  08:10:32 | Size: 227220/420 | Record:    1/541
  1265. R: 1-541 F:51-60 H:991                                             Beg:1 End:420
  1266.  
  1267. B87    COLD  4580269370                       002119256300000000000000000000
  1268. T...|..T10...T|...20....|...30....|...40....|...50T...|...60T...|...70T...|...80
  1269.  
  1270. 000000000000000000000000000000000000000000000000000000000000
  1271. T...|...90T...|..100T...|..110T...|..120T...|..130T...|..140....|..150....|..160
  1272.  
  1273.  COLDWATER TOWNHOMES
  1274. .T..|..170....|..180....|..190....|..200....|..210....|..220....|..230....|..240
  1275.  
  1276.  906 SOUTH TWIN CITY HWY                 SOME TOWN                    TX78750
  1277. .T..|..250....|..260....|..270....|..280.T..|..290....|..300....|..310T.T.|..320
  1278.  
  1279.  8712313                                            8701061PROPERTY LOCATION AND
  1280. .T..|.T330....|..340....|..350....|..360....|..370..T.|..38T....|..390....|..400
  1281.  
  1282.  DESCRIPTION
  1283. ....|..410....|..420
  1284.  
  1285.  
  1286.  
  1287. Edit  Abort  Quit  Load  +/-#  Search  Next  Wordcount  F10Bounds       Alt-Help
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.                          Figure 1 - Example EditRand Screen
  1304.  
  1305.  
  1306.        ----------------------------------------------------------------------
  1307.        Browse Mode                                                   Page 16
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.                                       EditRand
  1314.        ----------------------------------------------------------------------
  1315.  
  1316.                           Summary of Browse Mode Functions
  1317.  
  1318.  
  1319.  
  1320.             Description                                  Key Definition
  1321.  
  1322.  
  1323.             LOAD new file to be edited                   L
  1324.  
  1325.             EDIT mode                                    E
  1326.  
  1327.             FETCH next or previous record                ->, <-
  1328.  
  1329.             FETCH first or last record in file           Ctrl-Home, Ctrl-End
  1330.  
  1331.             FETCH absolute record                        nnnnnnn
  1332.  
  1333.             FETCH relative record                        +|- nnnnnnn
  1334.  
  1335.             COUNT word occurrences                       W
  1336.  
  1337.             COUNT word occurrences (Repeat)              Ctrl-W
  1338.  
  1339.             SEARCH for a string                          S
  1340.  
  1341.             SEARCH for next string occurrence            N
  1342.  
  1343.             FETCH record via absolute byte number        Alt-B
  1344.  
  1345.             INVERSE video rule lines                     Alt-I
  1346.  
  1347.             CHANGE string operation column boundaries    F10
  1348.  
  1349.             Dynamic Fields toggle                        Ctrl-F
  1350.  
  1351.             ABORT program, lose changes and update ER.INI     A
  1352.  
  1353.             ABORT program, lose changes and DON'T update ER.INI    Ctrl-A
  1354.  
  1355.             QUIT program, save changes and update ER.INI Q
  1356.  
  1357.             QUIT program, save changes and DON'T update ER.INI     Ctrl-Q
  1358.  
  1359.             HELP (show these definitions)                Alt-H
  1360.  
  1361.  
  1362.  
  1363.        ----------------------------------------------------------------------
  1364.        Browse Mode                                                   Page 17
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.                                       EditRand
  1371.        ----------------------------------------------------------------------
  1372.  
  1373.        Browse Mode Functions
  1374.  
  1375.  
  1376.             LOAD new file to be edited                               "L"
  1377.  
  1378.                  A prompt  will appear  on the  bottom  line  of  the
  1379.                  display, allowing  specification of  the new file to
  1380.                  be edited.   While typing a response, the Escape key
  1381.                  may be pressed to abort the Load function and resume
  1382.                  Browse mode.   Current file will be updated on disk,
  1383.                  and new  file will  be loaded.  If the new file does
  1384.                  not exist,  or its  file size  is 0 (empty file), it
  1385.                  will be treated as a new file, and will be displayed
  1386.                  with one  empty appended record. *   A new file will
  1387.                  be denoted  with [New]  in front of the file name on
  1388.                  line one of the display.  The previous record length
  1389.                  will be used on the new file.  If a different record
  1390.                  length is desired, the specified file name should be
  1391.                  followed by  one or  more spaces  and the new record
  1392.                  length, such as
  1393.  
  1394.                       C:\CUSTOMER\QUARTER1\DIVIDEND.DAT 312
  1395.  
  1396.                  The command  line switches, as previously discussed,
  1397.                  can be  used in  conjunction with the Load function.
  1398.                  The syntax  is the  same as  when executing EDITRAND
  1399.                  from DOS.  For example:
  1400.  
  1401.                       C:\CUSTOMER\QUARTER1\DIVIDEND.DAT 312 /B
  1402.  
  1403.                  Any specified  switches must  be the last parameters
  1404.                  as indicated  in the above example.  See the summary
  1405.                  of  defined  switches  below  under  FILE  SELECTION
  1406.                  WINDOW.
  1407.  
  1408.                  Special symbols:
  1409.  
  1410.                       *    Asterisk stands  for  name  of  the
  1411.                            same file  currently being  edited.
  1412.                            Useful for  viewing the  same  file
  1413.  
  1414.        ____________________
  1415.             * If  a dBASE  file is  loaded with the /DT   switch, and it
  1416.             contains a  header only - no records, it will be loaded with
  1417.             one empty appended record.
  1418.  
  1419.  
  1420.        ----------------------------------------------------------------------
  1421.        Browse Mode                                                   Page 18
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.                                       EditRand
  1428.        ----------------------------------------------------------------------
  1429.  
  1430.                            with a different record length, for
  1431.                            example
  1432.  
  1433.                                 * 256
  1434.  
  1435.                       #    Reload previous  file.   Previously
  1436.                            edited file (if any) will be loaded
  1437.                            and  displayed   at   last   record
  1438.                            edited.
  1439.  
  1440.                  If changes  are pending  from the  previously edited
  1441.                  file, an  opportunity will  be given  to save  those
  1442.                  changes before  loading the  specified  file.    The
  1443.                  following message will appear on the status line:
  1444.  
  1445.                       Save changes (Y/N/Escape) ?
  1446.  
  1447.                  If Y  is typed  in response  to this  question,  all
  1448.                  changes made  to the  previously edited file will be
  1449.                  written to  disk and  a backup  file  will  be  kept
  1450.                  (unless the  /N or /E switches are in effect).  If N
  1451.                  is typed,  all changes  will be  lost and  no backup
  1452.                  file will  be kept.   If  the Escape key is pressed,
  1453.                  the Load operation will be aborted.
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.        ----------------------------------------------------------------------
  1478.        Browse Mode                                                   Page 19
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.                                       EditRand
  1485.        ----------------------------------------------------------------------
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.        Path: C:\DATA\1993
  1493.  
  1494.  
  1495.               +------------------------------------------------+
  1496.               | .             D            08-12-89    04:15:48|
  1497.               | ..            D            08-12-89    04:15:48|
  1498.               | 1099A.ERB     A   81900    09-25-90    05:36:00|
  1499.               | 1099A.DAT         81900    09-25-90    05:36:00|
  1500.               | CUSTOMER.DAT     124713    01-15-90    12:36:52|
  1501.               | FISCAL87.REC      21800    09-15-90    15:20:04|
  1502.               | FISCAL88.REC      34900    09-25-90    06:56:36|
  1503.               | FISCAL89.REC      46100    09-25-90    06:38:00|
  1504.               | BUDGET.DAT       102400    08-21-91    05:40:40|
  1505.               | 1099MISC.OUT     230600    01-23-90    05:32:36|
  1506.               | TEST.DAT          13560    09-25-90    07:20:08|
  1507.               | MYDATA.001    R   19250    04-07-90    13:51:10|
  1508.               +------------------------------------------------+
  1509.        +----------------------------------------------------------------+
  1510.        | Use   Page Up, Page Down, Ctrl-Home and Ctrl-End to highlight|
  1511.        | the desired file or directory to expand.  Enter Loads file or  |
  1512.        | Expands directory.  Alt-D deletes file.  Tab alters fields.    |
  1513.        |                                                                |
  1514.        | 2,106  dirs,files         Item: 3         3,485,696 bytes free |
  1515.        +----------------------------------------------------------------+
  1516.        Mask: *.*                   [File specification including ? and *]
  1517.        Switches: /B                [/S toggles subdirectory display.    ]
  1518.        Record Length: 420          [Invalid if /DT switch is used.      ]
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.                          Figure 2 - The File Selection Window
  1532.  
  1533.  
  1534.        ----------------------------------------------------------------------
  1535.        Browse Mode                                                   Page 20
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.                                       EditRand
  1542.        ----------------------------------------------------------------------
  1543.  
  1544.  
  1545.  
  1546.                  FILE SELECTION  WINDOW <F8> The LOAD function can be
  1547.                  used to  view groups of files in a selection window.
  1548.                  After the  Load prompt  appears, if F8 is pressed, a
  1549.                  group of files will be displayed alphabetically in a
  1550.                  window for browsing and selection.  The actual files
  1551.                  chosen for  display depends  upon the user-specified
  1552.                  file designator  and the number of files found.  All
  1553.                  MSDOS file  designation conventions  apply, such  as
  1554.                  the use  of the  asterisk "*"  and the question mark
  1555.                  "?".       For   example,    if   the   user   types
  1556.                  C:\EMPLOYEE\*.DAT in  response to  the Load  prompt,
  1557.                  then presses  F8,  all  files  in  the  subdirectory
  1558.                  C:\EMPLOYEE that  have the  extension .DAT  will  be
  1559.                  selected for  viewing.   For each  file that matches
  1560.                  the  file  designator,  the  selection  window  will
  1561.                  contain the file name, attribute, size, and date and
  1562.                  time of last modification.  If the specified file(s)
  1563.                  are contained  within a  subdirectory, the full path
  1564.                  will be  not be  shown as  part of  the file name(s)
  1565.                  within the  window; however,  such path is displayed
  1566.                  at the  bottom of the screen.  If F8 is pressed with
  1567.                  no file designator, all files in the current default
  1568.                  subdirectory will  be  displayed.    Likewise  if  a
  1569.                  subdirectory path  is specified  with no  file  name
  1570.                  designation, all files in the specified subdirectory
  1571.                  will be  displayed.   Please note  that only normal,
  1572.                  archived, and  read-only files  are displayed within
  1573.                  the file selection window.   The attribute column of
  1574.                  the display  (immediately to  the right  of the file
  1575.                  name column)  will indicate  the type of file: blank
  1576.                  for normal file, R for read only, A for archive, and
  1577.                  D for  subdirectory.  A maximum of 1000 files can be
  1578.                  displayed.   If  more  than  1000  files  match  the
  1579.                  specified designator  a plus  sign (+)  will  appear
  1580.                  after the  file count  (see "count  of the files" in
  1581.                  the next paragraph).
  1582.  
  1583.                  Subdirectory navigation  is  possible  in  the  File
  1584.                  Selection Window.   If a subdirectory is highlighted
  1585.                  and carriage  return  is  pressed,  the  highlighted
  1586.                  subdirectory will  be displayed  using the indicated
  1587.                  file mask.  To change drives, you must exit the File
  1588.                  Selection Window  and respecify  the file  path.  If
  1589.  
  1590.  
  1591.        ----------------------------------------------------------------------
  1592.        Browse Mode                                                   Page 21
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.                                       EditRand
  1599.        ----------------------------------------------------------------------
  1600.  
  1601.                  you do  not want  to see  subdirectories in the File
  1602.                  Selection Window,  Tab to  the Switches  fields  and
  1603.                  include the  /S switch  (it will disappear after the
  1604.                  files are  redisplayed.)   The current path and file
  1605.                  mask will  be reused,  but no subdirectories will be
  1606.                  shown.  To bring subdirectories back to the display,
  1607.                  repeat the procedure.
  1608.  
  1609.                  Below the  file selection window is a smaller window
  1610.                  containing usage  instructions and  a count  of  the
  1611.                  files found  for viewing and free disk space.  Usage
  1612.                  keys are up/down cursor, Page Up/Page Down and Ctrl-
  1613.                  Home/Ctrl-End.      When   the   desired   file   is
  1614.                  highlighted, pressing carriage return will cause the
  1615.                  selected file  to be  loaded.   The  file  selection
  1616.                  window may  be aborted  by pressing  the Escape key;
  1617.                  this will  cause the  selection window  to disappear
  1618.                  and allow  the user  to regain  control of  the Load
  1619.                  prompt.   If  a  file  is  selected,  the  currently
  1620.                  defined record  length will  be maintained  unless a
  1621.                  new record  length  was  specified  after  the  file
  1622.                  designator, such as
  1623.  
  1624.                       D:\INCOME\92\*.*  230
  1625.  
  1626.                  If a  new record  length is  included,  it  must  be
  1627.                  preceded by a file designator.  Also, if a switch is
  1628.                  specified, it  will  take  effect  if  the  file  is
  1629.                  successfully loaded.  Defined switches are discussed
  1630.                  at the  beginning of  this  manual.    Briefly,  the
  1631.                  switches are:
  1632.  
  1633.                       /N        No backup.
  1634.  
  1635.                       /E        Erase backup files.
  1636.  
  1637.                       /B        Browse only.
  1638.  
  1639.                       /M        Use Microsoft Binary Format.
  1640.  
  1641.                       /I        Use IEEE numeric format (default).
  1642.  
  1643.                       /D[T]          Load File as dBASE [read fields
  1644.                            as tab definitions.]
  1645.  
  1646.  
  1647.  
  1648.        ----------------------------------------------------------------------
  1649.        Browse Mode                                                   Page 22
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.                                       EditRand
  1656.        ----------------------------------------------------------------------
  1657.  
  1658.                       /On       Create header offset.
  1659.  
  1660.                       /Vn       Video mode.
  1661.  
  1662.                       /MONO     Force the use of monochrome
  1663.                            attributes.
  1664.  
  1665.                  Also, the switch /X may be used to cancel previously
  1666.                  defined switches /N, /E, or /B.
  1667.  
  1668.                  In addition,  the file  selection window  allows the
  1669.                  user to  delete the  currently highlighted  file  by
  1670.                  pressing Alt-D.  (The free disk space will increment
  1671.                  to reflect  file deletions.)     Before the  file is
  1672.                  deleted, a  warning prompt is displayed allowing the
  1673.                  user to abort the deletion.
  1674.  
  1675.  
  1676.             EDIT the current record                                  "E"
  1677.  
  1678.                  Begin editing  on the  current record.    Cursor  is
  1679.                  placed on  byte 1.  It is not necessary to exit Edit
  1680.                  mode to  locate other  records.  See EDIT MODE later
  1681.                  for a description of functions that allow navigation
  1682.                  among records when in Edit mode.
  1683.  
  1684.                  Edit mode  is not available if EDITRAND was executed
  1685.                  with the /B switch (Browse Only).
  1686.  
  1687.  
  1688.             FETCH next or previous record        <[Right | Left] cursor>
  1689.  
  1690.                  Display adjacent  record.    Left  cursor  navigates
  1691.                  toward beginning  of file;  right  cursor  navigates
  1692.                  toward end  of file.  Beginning and  end of file are
  1693.                  determined by  Record bounds, not true beginning and
  1694.                  end of file.
  1695.  
  1696.  
  1697.             FETCH first or last record in file     <Ctrl-Home, Ctrl-End>
  1698.  
  1699.                  Display first  or last  record in file as determined
  1700.                  by Record bounds.
  1701.  
  1702.  
  1703.  
  1704.  
  1705.        ----------------------------------------------------------------------
  1706.        Browse Mode                                                   Page 23
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.                                       EditRand
  1713.        ----------------------------------------------------------------------
  1714.  
  1715.             FETCH absolute record                            <nnnnnnnnn>
  1716.  
  1717.                  Display indicated  absolute record.    If  specified
  1718.                  record  number  is  outside  the  currently  defined
  1719.                  record bounds,  beginning or  ending boundary record
  1720.                  will be  displayed.   nnnnnnnnn represents a maximum
  1721.                  nine digit number.
  1722.  
  1723.  
  1724.             FETCH relative record                    <[+ | -] nnnnnnnnn>
  1725.  
  1726.                  Display indicated relative record.  If offset record
  1727.                  number  is  outside  the  currently  defined  record
  1728.                  bounds, beginning  or ending boundary record will be
  1729.                  displayed.   nnnnnnnnn  represents  a  maximum  nine
  1730.                  digit number.
  1731.  
  1732.  
  1733.             COUNT word occurrences                           <Alt-W | W>
  1734.  
  1735.                  Please see  description under Edit Mode, on page 33.
  1736.                  All Search  and Count  functions are identical under
  1737.                  both Browse and Edit modes.
  1738.  
  1739.  
  1740.             COUNT next word occurrences                         <Ctrl-W>
  1741.  
  1742.                  Repeat previous  count word  operation.   Please see
  1743.                  description under Edit Mode, on page 33.  All Search
  1744.                  and Count  functions are identical under both Browse
  1745.                  and Edit modes.
  1746.  
  1747.  
  1748.             SEARCH for a string                              <Alt-S | S>
  1749.  
  1750.                  Please see  description under Edit Mode, on page 34.
  1751.                  All Search  and Count  functions are identical under
  1752.                  both Browse and Edit modes.
  1753.  
  1754.  
  1755.             SEARCH for NEXT string occurrence                <Alt-N | N>
  1756.  
  1757.                  Please see  description under Edit Mode, on page 34.
  1758.                  All Search  and Count  functions are identical under
  1759.                  both Browse and Edit modes.
  1760.  
  1761.  
  1762.        ----------------------------------------------------------------------
  1763.        Browse Mode                                                   Page 24
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.                                       EditRand
  1770.        ----------------------------------------------------------------------
  1771.  
  1772.  
  1773.  
  1774.             FETCH record via absolute byte number                <Alt-B>
  1775.  
  1776.                  Fetch and  display record  containing  the  absolute
  1777.                  byte as  specified.   If specified  record number is
  1778.                  outside  the   currently  defined   record   bounds,
  1779.                  beginning  or   ending  boundary   record  will   be
  1780.                  displayed.   Byte number  can be specified in either
  1781.                  decimal (the default) or hexidecimal (Hnnn).
  1782.  
  1783.  
  1784.             INVERSE video rule lines                             <Alt-I>
  1785.  
  1786.                  Toggle the  video  mode  of  the  underlying  rules.
  1787.                  Either regular  color or  inverse color is available
  1788.                  depending upon  the individual user's needs.  Please
  1789.                  note that  a single generic ruler may be utilized if
  1790.                  the current  record length  is  too  large  for  the
  1791.                  record to fit in the record display area.
  1792.  
  1793.             BOUNDS - Change string operation boundaries            <F10>
  1794.  
  1795.                  Please see description under Edit Mode, on page 54.
  1796.  
  1797.  
  1798.             DYNAMIC Field Boundaries                            <Ctrl-F>
  1799.  
  1800.                  Dynamic field  boundaries can be toggled by pressing
  1801.                  Ctrl-F.   See page  45 for  more  information  about
  1802.                  dynamic fields.
  1803.  
  1804.  
  1805.             ABORT program, lose changes and update ER.INI            "A"
  1806.  
  1807.                  Abort  EDITRAND:     lose  changes,  update  current
  1808.                  operating parameters  in ER.INI,  and exit  to  DOS.
  1809.                  All changes  made  will  be  lost.    Abort  is  not
  1810.                  available if program was executed with /N option (no
  1811.                  backup).  No backup file is kept.
  1812.  
  1813.  
  1814.             ABORT program, lose changes, don't update ER.INI    <Ctrl-A>
  1815.  
  1816.  
  1817.  
  1818.  
  1819.        ----------------------------------------------------------------------
  1820.        Browse Mode                                                   Page 25
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.                                       EditRand
  1827.        ----------------------------------------------------------------------
  1828.  
  1829.                  Same as  typing A,  except the  initialization  file
  1830.                  ER.INI is  not updated  with the  current  operating
  1831.                  environment.   The next  time EDITRAND  is executed,
  1832.                  the same operating environment will be loaded as the
  1833.                  current invocation loaded.
  1834.  
  1835.             QUIT program, save changes and update ER.INI             "Q"
  1836.  
  1837.                  Quit  EDITRAND:     saves  changes,  update  current
  1838.                  operating parameters  in ER.INI,  and exit  to  DOS.
  1839.                  ("save changes"  does  not  apply  if  EDITRAND  was
  1840.                  executed with  /B [browse only] option.)  If changes
  1841.                  were made  to the  previously edited  file, a backup
  1842.                  will be  kept unless  the /N  or /E  switches are in
  1843.                  effect.
  1844.  
  1845.             QUIT program, save changes, don't update ER.INI     <Ctrl-Q>
  1846.  
  1847.                  Same as  typing Q,  except the  initialization  file
  1848.                  ER.INI is  not updated  with the  current  operating
  1849.                  environment.   The next  time EDITRAND  is executed,
  1850.                  the same operating environment will be loaded as the
  1851.                  current invocation loaded.
  1852.  
  1853.  
  1854.  
  1855.  
  1856.             Changes made to current file.  If the current file has been
  1857.             altered, the file name on line one of the display will have the
  1858.             ASCII character 241 (the plus/minus sign) prepended to the file
  1859.             name.
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.        ----------------------------------------------------------------------
  1877.        Browse Mode                                                   Page 26
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.                                       EditRand
  1884.        ----------------------------------------------------------------------
  1885.  
  1886.                                      EDIT MODE
  1887.  
  1888.  
  1889.  
  1890.             When in  Browse mode,  pressing E  invokes  Edit  mode,  and
  1891.             places the  cursor on  byte 1  of  the  currently  displayed
  1892.             record.   Notice that  line  two  now  has  some  additional
  1893.             information in the center area:
  1894.  
  1895.                                    Hex:20  Dec:32
  1896.  
  1897.             This information  will remain until Edit mode is exited.  As
  1898.             the cursor  navigates about  the various  positions  of  the
  1899.             record, the  value of  the current  byte is  shown  in  both
  1900.             hexidecimal and  decimal.   In addition,  the meaning of the
  1901.             byte offsets  as shown  on the  right  of  line  two  change
  1902.             somewhat.   Instead of representing the absolute byte offset
  1903.             of the  beginning and  ending of  the current  record (as in
  1904.             Browse mode),  they now indicate the position of the cursor.
  1905.             Respectively they are:
  1906.  
  1907.                  (a)  Absolute byte position from the beginning of
  1908.                       the file.  If a header offset is in effect,
  1909.                       this count will include the offset.
  1910.  
  1911.                  (b)  The byte Offset from the beginning of the
  1912.                       record.  This quantity can be toggled to
  1913.                       represent the offset from the beginning of
  1914.                       the current field with Alt-O.
  1915.  
  1916.             For example,  if the  record length  is 256,  record  12  is
  1917.             currently displayed  and the  cursor is  on  byte  128,  the
  1918.             following numbers would appear:
  1919.  
  1920.                  Abs:2944     Off:128
  1921.  
  1922.             Both of  these numbers  change accordingly with every cursor
  1923.             movement.
  1924.  
  1925.             In Edit  mode, the Browse mode keys are no longer available.
  1926.             A new  set of functions and their pertinent keys are defined
  1927.             in Edit  mode (although  some of  the string  functions  are
  1928.             identical in  both Browse  and Edit  modes).   The Edit mode
  1929.             functions are  discussed on  the  following  pages  and  are
  1930.             grouped according to function type.
  1931.  
  1932.  
  1933.        ----------------------------------------------------------------------
  1934.        Edit Mode                                                   Page 27
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.                                       EditRand
  1941.        ----------------------------------------------------------------------
  1942.  
  1943.                            Summary of Edit Mode Functions
  1944.  
  1945.  
  1946.  
  1947.             Description                                  Key Definition
  1948.  
  1949.             GO to first or last character within defined field Bounds
  1950.             Home, End
  1951.  
  1952.             FETCH next or previous record                Ctrl ->, <-
  1953.  
  1954.             FETCH first or last record in file           Ctrl-Home, End
  1955.  
  1956.             FETCH record via absolute byte number        Alt-B
  1957.  
  1958.  
  1959.             COUNT word occurrences                       Alt-W
  1960.  
  1961.             COUNT word occurrences (Repeat)              Ctrl-W
  1962.  
  1963.             SEARCH for string                            Alt-S
  1964.  
  1965.             SEARCH for next string                       Alt-N
  1966.  
  1967.             STRING replacement                           Alt-R
  1968.  
  1969.             STRING replacement (Repeat)                  Alt-G
  1970.  
  1971.  
  1972.             CUT into Scratchpad                          Alt-C
  1973.  
  1974.             PASTE from Scratchpad                        Alt-P
  1975.  
  1976.             APPEND record                                Alt-A
  1977.  
  1978.             DELETE record                                Alt-D
  1979.  
  1980.             UNDELETE record or undo changes to record    Alt-U
  1981.  
  1982.             DELETE range of records                      Ctrl-D
  1983.  
  1984.             UNDELETE or undo changes to range of records Ctrl-U
  1985.  
  1986.             DYNAMIC field boundaries toggle              Ctrl-F
  1987.  
  1988.  
  1989.  
  1990.        ----------------------------------------------------------------------
  1991.        Edit Mode                                                   Page 28
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.                                       EditRand
  1998.        ----------------------------------------------------------------------
  1999.  
  2000.             CHANGE colors of cursor area                 Page Up/Down
  2001.  
  2002.  
  2003.             CASE, change to Upper Case                   Ctrl-P
  2004.  
  2005.             CASE, change to Lower Case                   Ctrl-O
  2006.  
  2007.             CASE, change to miXed Case                   Ctrl-X
  2008.  
  2009.             CASE, toggle case of current character       Ctrl-C
  2010.  
  2011.             FIND deleted record                          Alt-Y
  2012.  
  2013.             SORT (save changes, sort on bounds, redisplay)    Ctrl S
  2014.  
  2015.  
  2016.             TOGGLE Hex/Text entry mode                   F1
  2017.  
  2018.             INSERT Binary number (Int, Long, Single, Dbl, Currency ?)
  2019.             F2
  2020.  
  2021.             SHOW decimal value of binaryInteger          F3
  2022.  
  2023.             SHOW decimal value of binary Long            F4
  2024.  
  2025.             SHOW decimal value of binary Single Precision     F5
  2026.  
  2027.             SHOW decimal value of binary Double Precision     F6
  2028.  
  2029.             SHOW decimal value of binary Currency        F7
  2030.  
  2031.             TOGGLE tab stop on/off at cursor position    F9
  2032.  
  2033.             TAB increment reset                          Ctrl-F9
  2034.  
  2035.             TOGGLE offset from beginning of field or record   Alt-O
  2036.  
  2037.             TOGGLE decimal/hex offset display            Alt-F1
  2038.  
  2039.             TOGGLE tab stops off/on                      Alt-F9
  2040.  
  2041.             TAB stops reset to null                      Alt-T
  2042.  
  2043.             CHANGE Bounds (string operation column boundaries)     F10
  2044.  
  2045.  
  2046.  
  2047.        ----------------------------------------------------------------------
  2048.        Edit Mode                                                   Page 29
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.                                       EditRand
  2055.        ----------------------------------------------------------------------
  2056.  
  2057.             RESET Bounds to physical maximums            Alt-F10
  2058.  
  2059.             CLEAR field bounds area                      Alt-F
  2060.  
  2061.             CLEAR to end of record                       Alt-E
  2062.  
  2063.             UPDATE dBASE header record count             Alt-Q
  2064.  
  2065.  
  2066.             SAVE AS - process deletions, save to different file    Alt-V
  2067.  
  2068.             INVERSE video rule lines                     Alt-I
  2069.  
  2070.             EXIT to Browse mode                          Escape
  2071.  
  2072.             PURGE Deletions                              [internal]
  2073.  
  2074.             TOGGLE prompt to purge deleted records       Alt-Z
  2075.  
  2076.             HELP (show these definitions)                Alt-H
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.        ----------------------------------------------------------------------
  2105.        Edit Mode                                                   Page 30
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.                                       EditRand
  2112.        ----------------------------------------------------------------------
  2113.  
  2114.        Basic Navigation Functions
  2115.  
  2116.  
  2117.             GO to adjacent characters             <all four cursor keys>
  2118.  
  2119.                  Place cursor  on adjacent  characters.   Cursor keys
  2120.                  behave the  same as in an ordinary text editor, with
  2121.                  the exception  that they  can never  cause  adjacent
  2122.                  record  to  be  fetched  and  displayed  (see  other
  2123.                  function below).   Also,  carriage return will cause
  2124.                  cursor to  be placed  in left-most  position of next
  2125.                  display line.
  2126.  
  2127.  
  2128.             GO to next or previous tab position        <tab | shift tab>
  2129.  
  2130.                  Place the  cursor on  next or previous tab position.
  2131.                  Tab positions are defined/undefined using the F9 key
  2132.                  (see description  on page  50).  If no tab positions
  2133.                  are defined, then the standard tab increment is used
  2134.                  (see standard tab increment on page 52).
  2135.  
  2136.  
  2137.             GO to first or last character within Field Bounds<Home | End>
  2138.  
  2139.                  Place cursor  on first or last byte within currently
  2140.                  defined field bounds.
  2141.  
  2142.  
  2143.             FETCH next or previous record     <Ctrl+[Right|Left] Cursor>
  2144.  
  2145.                  Display  adjacent   record.    Ctrl  +  Left  cursor
  2146.                  navigates toward  beginning of  file; Ctrl  +  right
  2147.                  cursor navigates  toward end of file.  Beginning and
  2148.                  end of  file are  determined by  Record bounds,  not
  2149.                  true beginning and end of file.
  2150.  
  2151.  
  2152.             FETCH first or last record in file     <Ctrl-Home, Ctrl-End>
  2153.  
  2154.                  Display first  or last  record in file as determined
  2155.                  by Record bounds.
  2156.  
  2157.  
  2158.             FETCH record via absolute byte number                <Alt-B>
  2159.  
  2160.  
  2161.        ----------------------------------------------------------------------
  2162.        Edit Mode                                                   Page 31
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.                                       EditRand
  2169.        ----------------------------------------------------------------------
  2170.  
  2171.                  Fetch and  display record  containing  the  absolute
  2172.                  byte as  specified.   If specified  record number is
  2173.                  outside  the   currently  defined   record   bounds,
  2174.                  beginning  or   ending  boundary   record  will   be
  2175.                  displayed.   If an  offset header  has been  defined
  2176.                  (with the  /On switch or through the use of /D dBASE
  2177.                  file), absolute  beginning of  the file is the first
  2178.                  displayable byte after the header.
  2179.  
  2180.                  The specified  offset is  in decimal  by default.  A
  2181.                  hexidecimal location  may be  specified by preceding
  2182.                  the number with H, for example HE3A1.
  2183.  
  2184.  
  2185.  
  2186.  
  2187.  
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.        ----------------------------------------------------------------------
  2219.        Edit Mode                                                   Page 32
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.                                       EditRand
  2226.        ----------------------------------------------------------------------
  2227.  
  2228.        Primary String Functions
  2229.  
  2230.  
  2231.             COUNT word occurrences                               <Alt-W>
  2232.  
  2233.                  Count number  of  occurrences  of  specified  string
  2234.                  within currently defined Bounds.  Counting begins at
  2235.                  current cursor  position (in  Browse mode,  counting
  2236.                  begins  at   beginning  field   bound  of  currently
  2237.                  displayed  record).     String  delimiters  are  not
  2238.                  necessary,  but  may  be  used  (slashes  or  double
  2239.                  quotes) if  significant leading  or trailing  blanks
  2240.                  are  used.    When  specifying  a  string,  you  may
  2241.                  optionally specify  Case (Alt-C), View records (Alt-
  2242.                  V), Hex  (F1), Binary  numbers (F2),  or full  ASCII
  2243.                  entry (Alt-nnn);  refer to  Appendix A  for usage of
  2244.                  these ancillary functions.
  2245.  
  2246.                  NOT -  It is possible to count the number of records
  2247.                  that do  not contain the specified word by enclosing
  2248.                  the string  in delimiters  and specifying  N as  the
  2249.                  last character.  For example:
  2250.  
  2251.                       Count: /STOCK/N
  2252.  
  2253.                  The last  two characters must be /N - no intervening
  2254.                  blanks.  This example will cause all records that do
  2255.                  not contain the word STOCK to be counted.  (Note the
  2256.                  subtle difference  between standard  COUNT and COUNT
  2257.                  NOT: the  number returned  by COUNT  NOT will  never
  2258.                  exceed the  total number  of records  in the  file.)
  2259.                  Record and  field bounds  also apply  to COUNT  NOT.
  2260.                  COUNT NOT starts at the BEGINNING field bound of the
  2261.                  current record.
  2262.  
  2263.  
  2264.             COUNT word occurrences, repeat                      <Ctrl-W>
  2265.  
  2266.                  This will  begin the  previously defined  word count
  2267.                  again, from the current cursor position.
  2268.  
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.        ----------------------------------------------------------------------
  2276.        Edit Mode                                                   Page 33
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.                                       EditRand
  2283.        ----------------------------------------------------------------------
  2284.  
  2285.             SEARCH for a string                                  <Alt-S>
  2286.  
  2287.                  Search for specified string within currently defined
  2288.                  Bounds. Searching  begins at current cursor position
  2289.                  (in Browse  mode, search  begins at  beginning field
  2290.                  bound  of   currently  displayed  record).    String
  2291.                  delimiters  are  not  necessary,  but  may  be  used
  2292.                  (slashes or double quotes) if significant leading or
  2293.                  trailing blanks are used.  When specifying a string,
  2294.                  you  may   optionally  specify  Case  (Alt-C),  View
  2295.                  records (Alt-V),  Hex (F1),  Binary numbers (F2), or
  2296.                  full ASCII  entry (Alt-nnn); refer to Appendix A for
  2297.                  usage of these ancillary functions.
  2298.  
  2299.                  NOT -  It is  possible to  search for  a record that
  2300.                  does not contain a specified string by enclosing the
  2301.                  search string  in delimiters and specifying N as the
  2302.                  last character. For example
  2303.  
  2304.                       Search: /427.16/N
  2305.  
  2306.                  (The last two characters must be /N - no intervening
  2307.                  blanks.)   This example  will locate the next record
  2308.                  (if any)  that does  not contain  the decimal number
  2309.                  427.16.   Record and  field  bounds  also  apply  to
  2310.                  SEARCH NOT.     SEARCH NOT  starts at  the BEGINNING
  2311.                  field bound of the current record.
  2312.  
  2313.                  A common  situation in which Search NOT is useful is
  2314.                  when it is known (or suspected) that a certain field
  2315.                  should always  contain the  same information.  Using
  2316.                  Search NOT  such fields  that  do  not  contain  the
  2317.                  desired information can be readily located.  Another
  2318.                  situation could  be when  it is  known that  certain
  2319.                  fields were  left blank  when records  within a data
  2320.                  file were initially created.  Using Search NOT, such
  2321.                  fields (perhaps  all blanks) can be readily located,
  2322.                  provided the field bounds are properly set.
  2323.  
  2324.  
  2325.             SEARCH for NEXT string occurrence                    <Alt-N>
  2326.  
  2327.                  Search for next occurrence of a previously specified
  2328.                  string within  currently defined  Bounds.  Searching
  2329.                  begins after  previously found  string, or beginning
  2330.  
  2331.  
  2332.        ----------------------------------------------------------------------
  2333.        Edit Mode                                                   Page 34
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.                                       EditRand
  2340.        ----------------------------------------------------------------------
  2341.  
  2342.                  field bound  of currently displayed record if record
  2343.                  navigation has  occurred  since  last  search.    If
  2344.                  string is  found, cursor  will be  positioned on the
  2345.                  first character  of target  string (in  Browse mode,
  2346.                  string will blink on the displayed line).  If string
  2347.                  is not  found, record  from which  search  initiated
  2348.                  will be maintained on the display.
  2349.  
  2350.                  If original  search was  specified as  a SEARCH NOT,
  2351.                  SEARCH NEXT will also be treated as a SEARCH NOT.
  2352.  
  2353.  
  2354.             REPLACE string                                       <Alt-R>
  2355.  
  2356.                  Strings can  be replaced  in the same manner as many
  2357.                  ordinary text  editors.  A prompt will appear on the
  2358.                  bottom  line   allowing  entry  of  the  target  and
  2359.                  replacement strings.  Syntax is:
  2360.  
  2361.                       /target string/replacement string/[D|L|U|X|P|Ca][*,?]
  2362.  
  2363.                  Note the  use of  slashes  as  delimiters  -  double
  2364.                  quotes may  also be  used as  delimiters.   Optional
  2365.                  switches placed after the last delimiter are:
  2366.  
  2367.                  D    The letter  D will  cause the deletion of any
  2368.                       record that  contains the  target.   This  is
  2369.                       constrained by the current field boundaries.
  2370.  
  2371.                  U    The letter U will cause the target to be
  2372.                       converted to upper case.
  2373.  
  2374.                  L    The letter L will cause the target to be
  2375.                       converted to lower case.
  2376.  
  2377.                  X    The letter X will cause the target to be
  2378.                       converted to a miXture of upper and lower
  2379.                       case.  Specifically, the first letter of each
  2380.                       word will be capitalized, and all other
  2381.                       characters will be converted to lower case.
  2382.  
  2383.                       By default, a word to be converted is defined as either
  2384.                       the beginning of the current field or any word preceded
  2385.                       by a  space or other user-defined characters.  The user
  2386.                       may define  what characters  should be  treated as word
  2387.  
  2388.  
  2389.        ----------------------------------------------------------------------
  2390.        Edit Mode                                                   Page 35
  2391.  
  2392.  
  2393.  
  2394.  
  2395.  
  2396.                                       EditRand
  2397.        ----------------------------------------------------------------------
  2398.  
  2399.                       separators for  this  purpose,  with  the  use  of  the
  2400.                       environmental variable ERMIXSEP.  For example:
  2401.  
  2402.                                 SET ERMIXSEP=123456789 !
  2403.  
  2404.                       The above  DOS command  (executed  prior  to  executing
  2405.                       EditRand) tells  EditRand to  convert any  word that is
  2406.                       preceded by any number, space or exclamation point.
  2407.  
  2408.  
  2409.                  P    The letter P will cause the target to be
  2410.                       overwritten with the contents of the
  2411.                       scratchpad.  This option will do nothing if
  2412.                       the scratchpad is empty.
  2413.  
  2414.                  Ca   The letter  C indicates that the target is to
  2415.                       be filled  with the character indicated by a.
  2416.                       a can  be any ASCII character.  If the target
  2417.                       is a discrete string, then the string will be
  2418.                       replaced with  a string  of a the same length
  2419.                       as the  target string;  if column replacement
  2420.                       is being  used, then entire field bounds area
  2421.                       will be filled with the character a.
  2422.  
  2423.                       NOTE: The above five options D, U, L, X, P, and
  2424.                       Ca do not require a discrete replacement string
  2425.                       - the  replacement is implicit.  Therefore, the
  2426.                       syntax for  these options  is the same as above
  2427.                       except the replacement string is not specified:
  2428.  
  2429.                            /target//[D|U|L|X|P|Ca]
  2430.  
  2431.  
  2432.                       Also, D,  U,  L,  X,  P  and  Ca  are  mutually
  2433.                       exclusive.  Only one may be used at a time.  If
  2434.                       more than  one is  specified, the leftmost will
  2435.                       be used.
  2436.  
  2437.  
  2438.                  *    Use of the asterisk causes a global
  2439.                       replacement to occur.  All occurrences of the
  2440.                       target string will be replaced with the
  2441.                       replacement string.
  2442.  
  2443.  
  2444.  
  2445.  
  2446.        ----------------------------------------------------------------------
  2447.        Edit Mode                                                   Page 36
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453.                                       EditRand
  2454.        ----------------------------------------------------------------------
  2455.  
  2456.                  ?    Use of the question mark causes the program
  2457.                       to stop and query the user before each
  2458.                       replacement is performed.  Valid responses to
  2459.                       this query are Y (yes), N (no), or Q (quit).
  2460.                       If used in conjunction with the * switch, all
  2461.                       occurrences of target string will be located
  2462.                       and queried until end of file or the user
  2463.                       responds with Q (quit).
  2464.  
  2465.                       Both * and ? may be used simultaneously.
  2466.                       If neither switch is used, only the next
  2467.                       occurrence of  the target string will be
  2468.                       replaced.
  2469.  
  2470.                  Replacement begins at the current cursor position of
  2471.                  the current  record.   Search for  the target string
  2472.                  only occurs  within the  currently defined field and
  2473.                  record bounds.   When  specifying a  string, you may
  2474.                  optionally specify  Case (Alt-C), View records (Alt-
  2475.                  V), Hex  (F1), Binary  numbers (F2),  or full  ASCII
  2476.                  entry (Alt-nnn);  refer to  Appendix A  for usage of
  2477.                  these ancillary functions.  Hex and binary functions
  2478.                  can be  invoked only  when the cursor is in position
  2479.                  one of  the target string specification (no text has
  2480.                  yet been  typed); notice  that the  Hex  and  binary
  2481.                  prompts disappear after the first character has been
  2482.                  typed.
  2483.  
  2484.                  Another function  available is F7-Replace At Cursor.
  2485.                  This prompt  will appear  only when the cursor is in
  2486.                  the second  position (after  the first delimiter has
  2487.                  been typed).   By pressing F7 a special icon appears
  2488.                  "{C}" which  signifies that  the replacement  string
  2489.                  should  be  inserted  at  the  current  edit  cursor
  2490.                  position.    (Merely  typing  {C}  will  not  enable
  2491.                  Replace At Cursor; F7 must be pressed.) For example:
  2492.  
  2493.                       Replace: /{C}/Hello/
  2494.  
  2495.                  This replacement  will cause  the string Hello to be
  2496.                  inserted into  the record at the current cursor edit
  2497.                  position.   (Current edit  cursor  position  can  be
  2498.                  verified by  looking at the number after Off: on the
  2499.                  right side  of column  2). Subsequent  use of  Alt-G
  2500.                  (replace  aGain)  will  insert  Hello  anywhere  the
  2501.  
  2502.  
  2503.        ----------------------------------------------------------------------
  2504.        Edit Mode                                                   Page 37
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.                                       EditRand
  2511.        ----------------------------------------------------------------------
  2512.  
  2513.                  cursor happens  to be in any record.  The switches ?
  2514.                  and *  may also  be used  with  Replace  At  Cursor.
  2515.                  Replace At  Cursor is  useful for inserting the same
  2516.                  value into  the same  field across an entire file or
  2517.                  group of  records.   For example,  if the  field  of
  2518.                  interest is  located between bytes 10 and 25, and it
  2519.                  is desired  to blank  out this  field, first perform
  2520.                  the following:
  2521.  
  2522.                       *    Assure that the current record and
  2523.                            field bounds are properly set
  2524.  
  2525.                       *    Assure that the cursor is on byte
  2526.                            10 before pressing Alt-R
  2527.  
  2528.                  The following  command will  accomplish the  desired
  2529.                  function:
  2530.  
  2531.                       Replace: /{C}/                /*
  2532.  
  2533.                  Notice the  use of  the global  replace character *.
  2534.                  This will cause the field between bytes 10 and 25 to
  2535.                  be blanked  out in  all records  between the current
  2536.                  record and  the end  of file  (or end record bound).
  2537.                  Please note  that if  the {C}  icon  is  backspaced,
  2538.                  Replace At Cursor will be disabled.
  2539.  
  2540.  
  2541.                  When specifying a Replace string in Hex or Bin mode,
  2542.                  it is  possible to  specify a  non-Hex or non-Binary
  2543.                  target or  replacement.   In other words if you have
  2544.                  pressed Alt-R  then   either F1 or F2, the target or
  2545.                  replacement must  still be hex or binary, but one or
  2546.                  the other  can be  a normal  character  string.  For
  2547.                  example, in hex mode:
  2548.  
  2549.                       /0C 0A/\!!/
  2550.  
  2551.                  This will  cause the  next  occurrence  of  carriage
  2552.                  return/line feed  to be  replaced  with  a  pair  of
  2553.                  exclamation points.   The     backslash is used as a
  2554.                  special character  that tells EditRand to treat what
  2555.                  follows as literal characters (that is, don't try to
  2556.                  interpret them  as hex  characters.)    The  reverse
  2557.                  would be
  2558.  
  2559.  
  2560.        ----------------------------------------------------------------------
  2561.        Edit Mode                                                   Page 38
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.                                       EditRand
  2568.        ----------------------------------------------------------------------
  2569.  
  2570.  
  2571.                        /\!!/0C 0A/
  2572.  
  2573.  
  2574.             REPLACE NEXT repeat previous REPLACE command         <Alt-G>
  2575.  
  2576.                  Pressing Alt-G  will repeat the previously specified
  2577.                  REPLACE command.
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611.  
  2612.  
  2613.  
  2614.  
  2615.  
  2616.  
  2617.        ----------------------------------------------------------------------
  2618.        Edit Mode                                                   Page 39
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.                                       EditRand
  2625.        ----------------------------------------------------------------------
  2626.  
  2627.        Record Functions
  2628.  
  2629.  
  2630.             CUT field bounds string into scratchpad              <Alt-C>
  2631.  
  2632.                  The string  within the field bounds of the currently
  2633.                  displayed  record   is  cut   into  the  scratchpad.
  2634.                  Displayed record is unaltered.  The current value of
  2635.                  the scratchpad  and its length are always denoted on
  2636.                  the right  side of  the status  line while  in  edit
  2637.                  mode.  (Scratchpad string is within curly braces {},
  2638.                  and its  length is shown in square brackets [].)  If
  2639.                  the scratchpad  string is  more than  8 bytes  long,
  2640.                  only the  left 4  bytes and  right 4 bytes are shown
  2641.                  with an  intervening arrow.   Please  note that if a
  2642.                  new file is loaded (Load option in browse mode), the
  2643.                  scratchpad string is maintained.
  2644.  
  2645.                  The only  way to nullify the scratchpad string is to
  2646.                  CUT from a deleted record.
  2647.  
  2648.  
  2649.             PASTE scratchpad into currently displayed record     <Alt-P>
  2650.  
  2651.                  The string  within the  scratchpad is  inserted into
  2652.                  the current  record beginning  at the current cursor
  2653.                  position.   If the  current cursor  position is such
  2654.                  that there  is  insufficient  space  to  insert  the
  2655.                  entire scratchpad  string into  the current  record,
  2656.                  then as  much of  the scratchpad  as can fit will be
  2657.                  inserted.   If no  string  has  been  CUT  into  the
  2658.                  scratchpad (with  Alt-C), no  action is  taken.    A
  2659.                  scratchpad string  cannot be inserted into a deleted
  2660.                  record.
  2661.  
  2662.                  The CUT  and PASTE operations are useful for copying
  2663.                  records (or  portions  of  records).    Record  move
  2664.                  operations  are   more  restrictive,   but  can   be
  2665.                  accomplished in the following manner:
  2666.  
  2667.                         1.      CUT  the  record to be moved into the
  2668.                                 scratchpad (make sure the current
  2669.                                 field bounds are set correctly)
  2670.  
  2671.  
  2672.  
  2673.  
  2674.        ----------------------------------------------------------------------
  2675.        Edit Mode                                                   Page 40
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.                                       EditRand
  2682.        ----------------------------------------------------------------------
  2683.  
  2684.                         2.      DELETE the same record (the one that
  2685.                                 was just CUT)
  2686.  
  2687.                  Now, either
  2688.  
  2689.                         3.      APPEND a new record and specify that
  2690.                                 the scratchpad be inserted into it.
  2691.  
  2692.                  or
  2693.  
  2694.                         3.      Determine the desired target record
  2695.                                 position, and make it the currently
  2696.                                 displayed record.
  2697.  
  2698.                         4.      PASTE the current scratchpad into the
  2699.                                 displayed record.  If you are moving
  2700.                                 the entire record, make sure the
  2701.                                 cursor is in position 1 of the
  2702.                                 record.  This will effectively delete
  2703.                                 the old record contents of the target
  2704.                                 record location since you are pasting
  2705.                                 over a pre-existing record, so
  2706.                                 beware.
  2707.  
  2708.  
  2709.             APPEND new record                                    <Alt-A>
  2710.  
  2711.                  A prompt  will appear asking how many records are to
  2712.                  be appended.   One  or more new records will then be
  2713.                  created at  the end  of file.   You  can  optionally
  2714.                  specify that  the new  records be  filled  with  the
  2715.                  scratchpad if  it is  not empty;  otherwise the  new
  2716.                  records are  filled with all spaces, and inserted at
  2717.                  the end  of the  file.  This function can be invoked
  2718.                  no matter  which record  is currently  displayed  as
  2719.                  long as  the end  record bound  is the last physical
  2720.                  record.   The last  new record becomes the currently
  2721.                  displayed record, ready for data entry.
  2722.  
  2723.                  Records cannot be appended if the current end record
  2724.                  bound is  not the  last physical  record in the file
  2725.                  (see the  discussion of  BOUNDS on  page  54).    If
  2726.                  append is  completed, end record bound is changed to
  2727.                  reflect to the newly appended record.
  2728.  
  2729.  
  2730.  
  2731.        ----------------------------------------------------------------------
  2732.        Edit Mode                                                   Page 41
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.                                       EditRand
  2739.        ----------------------------------------------------------------------
  2740.  
  2741.                  WARNING: If  the size  of the  file currently  being
  2742.                  edited is not evenly divisible by the record length,
  2743.                  the last record will be truncated, preventing cursor
  2744.                  movement beyond the end of file. This is okay unless
  2745.                  you Append  a record,  in which case the last record
  2746.                  will be  padded out  to produce  a file size that is
  2747.                  evenly divisible  by the record length; then the new
  2748.                  record will  be appended.   For  example, if  a file
  2749.                  called JOBS.FIL  contains 12900 bytes, and is loaded
  2750.                  with a  record length  of 128,  the last record will
  2751.                  contain only  100 bytes.   Appending  a record  onto
  2752.                  this file  will increase  the file not by 128 bytes,
  2753.                  but by 156 bytes: the 28 bytes necessary to fill out
  2754.                  the last  record plus  the 128  for the new appended
  2755.                  record.   This action  represents an  effort by  the
  2756.                  program to maintain an evenly blocked data file.  If
  2757.                  EDITRAND is  used to  edit files  other than  evenly
  2758.                  blocked data  files, it  may  not  be  desirable  to
  2759.                  Append records for this reason.
  2760.  
  2761.  
  2762.             DELETE record                                        <Alt-D>
  2763.  
  2764.                       DEFINITION: Deletion String is a character
  2765.                       string inserted  into a record to indicate
  2766.                       that it  is deleted.   The Deletion String
  2767.                       is defined  as a string of nulls (ASCII 0)
  2768.                       equal in  length  to  the  current  record
  2769.                       length, with  the  Greek  character  Theta
  2770.                       (ASCII 237) inserted in position 1.
  2771.  
  2772.                  Delete the  currently displayed  record.   Record is
  2773.                  changed to  the Deletion String, and further editing
  2774.                  of  the   record  is  not  allowed.  Record  can  be
  2775.                  undeleted using  Alt-U unless  the  /N  (no  backup)
  2776.                  option is in effect.
  2777.  
  2778.                       WARNING: If,  by rare  chance,   there are
  2779.                       legitimate records  in the data file whose
  2780.                       contents are also all nulls with ASCII 237
  2781.                       in position  1, they may be interpreted as
  2782.                       deleted records and purged during a future
  2783.                       purge operation  (see PURGE  DELETIONS  on
  2784.                       page 58).
  2785.  
  2786.  
  2787.  
  2788.        ----------------------------------------------------------------------
  2789.        Edit Mode                                                   Page 42
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.                                       EditRand
  2796.        ----------------------------------------------------------------------
  2797.  
  2798.             When a  record is  deleted, it  will continue to exist (as a
  2799.             deleted record) within the file until you direct EDITRAND to
  2800.             purge deleted  records.   EDITRAND will  prompt you to purge
  2801.             deleted records  each time  you load a new file or exit from
  2802.             the program.
  2803.  
  2804.  
  2805.             UNDELETE/UNDO changes to current record              <Alt-U>
  2806.  
  2807.                  Restore the  current record  or  field  to  pre-edit
  2808.                  contents.   If field  bounds are not set, the entire
  2809.                  current record is restored; if field bounds are set,
  2810.                  you are prompted for Record or Field undo.  If field
  2811.                  is selected,  only the  current field is restored to
  2812.                  the current  record - the remainder of the record is
  2813.                  left unaltered.
  2814.  
  2815.                  This operation  is performed  by  reading  the  same
  2816.                  record from  the  backup  created  and  writing  its
  2817.                  contents  back   into  the  displayed  record.  This
  2818.                  feature will  be unavailable  if the  /N (no backup)
  2819.                  option is utilized [see NOTE below].  This obviously
  2820.                  makes the /N option rather dangerous.  Also, undo is
  2821.                  not available  for  newly  appended  records.    See
  2822.                  APPEND on page 41.
  2823.  
  2824.                  NOTE: When  a record  is fetched  and  displayed,  a
  2825.                  temporary copy is made (internally).  As changes are
  2826.                  made to  the displayed  record, such  changes can be
  2827.                  undone by  use of this temporary copy, regardless if
  2828.                  the /N  option or  append operation  is  in  effect.
  2829.                  However, once  any subsequent  disk   I/O operations
  2830.                  are carried  out (such  as record  fetch, Sort, Save
  2831.                  As, etc) this temporary copy is destroyed and cannot
  2832.                  be used  to undo changes.  The use of this temporary
  2833.                  copy for  undo purposes is transparent to the user -
  2834.                  the EDITRAND  program will  decide whether  to  undo
  2835.                  from the  temporary copy  or from  the  backup  file
  2836.                  copy.
  2837.  
  2838.  
  2839.             DELETE RANGE of records                             <Ctrl-D>
  2840.  
  2841.                  This function  will  delete  all  records  that  are
  2842.                  within the  currently defined  record bounds.    Any
  2843.  
  2844.  
  2845.        ----------------------------------------------------------------------
  2846.        Edit Mode                                                   Page 43
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.                                       EditRand
  2853.        ----------------------------------------------------------------------
  2854.  
  2855.                  records  that   are  already   deleted  will  remain
  2856.                  deleted.   Before proceeding,  the function will ask
  2857.                  Delete records lll through uuu (Y/N) ? where lll and
  2858.                  uuu are  the currently  defined  beginning  and  end
  2859.                  record bounds.  Press Y to perform the deletions, or
  2860.                  N to  abort deletions.  Deletions may be interrupted
  2861.                  with the  Escape key.   This  function can be undone
  2862.                  with its  complimentary  function,  UNDELETE  RANGE,
  2863.                  although any  records  that  were  deleted  manually
  2864.                  (Alt-D) prior  to invocation  of DELETE  RANGE  will
  2865.                  also be undeleted.
  2866.  
  2867.                  WARNING: Use  this function  cautiously  if  the  /N
  2868.                  switch (no  backup) is  in effect,  as  any  records
  2869.                  deleted without the presence of a backup file cannot
  2870.                  be undeleted  with any  of UNDELETE  RANGE (Ctrl-U),
  2871.                  UNDELETE record (Alt-U), or session Abort.
  2872.  
  2873.  
  2874.             UNDELETE/UNDO RANGE of records                      <Ctrl-U>
  2875.  
  2876.                  This function  will undelete  or undo changes to all
  2877.                  records that are within the currently defined record
  2878.                  bounds.   The function  will ask "Undelete Only/Undo
  2879.                  All records  lll through  uuu (O/A/Esc) ?" where lll
  2880.                  and uuu  are the currently defined beginning and end
  2881.                  record bounds.   Press  O to  only undelete  records
  2882.                  that contain  the deletion  string, or A to undo all
  2883.                  changes  (deleted   records  as   well  as   textual
  2884.                  changes.)   Function may  be aborted with the Escape
  2885.                  key.
  2886.  
  2887.                  If you  chose to undo all changes (responded with A)
  2888.                  and field  bounds are  not set,  the operation  will
  2889.                  begin; if field bounds are set, you are prompted for
  2890.                  Record or  Field undo.   If  Field is selected, only
  2891.                  the current  field is  restored to each record - the
  2892.                  remainder of each record is left unaltered.
  2893.  
  2894.                  The undelete/undo  operation is  performed from  the
  2895.                  backup file.   This function will not work if the /N
  2896.                  switch (no  backup) is in effect.  Also, any records
  2897.                  appended since  the start  of the  session cannot be
  2898.                  undone, since  there are no corresponding records in
  2899.                  the backup file.
  2900.  
  2901.  
  2902.        ----------------------------------------------------------------------
  2903.        Edit Mode                                                   Page 44
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.                                       EditRand
  2910.        ----------------------------------------------------------------------
  2911.  
  2912.  
  2913.  
  2914.             DYNAMIC Field Boundaries                            <Ctrl-F>
  2915.  
  2916.                  Dynamic field  boundaries can be toggled by pressing
  2917.                  Ctrl-F.   When dynamic  field boundaries are on, the
  2918.                  field boundary  setting will change automatically as
  2919.                  the cursor crosses a tab setting.    This feature is
  2920.                  handy if  you want  editing operations  to always be
  2921.                  confined to  the field  level.    Any  part  of  the
  2922.                  current  record   can  still  be  edited,  but  such
  2923.                  operations  as   Search,  Replace,   Wordcount,  and
  2924.                  character insert  and delete  are  confined  to  the
  2925.                  current field boundary setting.
  2926.  
  2927.                  While dynamic  field boundaries  are in  effect, the
  2928.                  current field  boundaries on  line 2 are highlighted
  2929.                  in cyan (color monitor).
  2930.  
  2931.                  When dynamic  field boundaries  are in  effect,  the
  2932.                  current  field   in  the   record  display  area  is
  2933.                  highlighted  using   a  different   foreground   and
  2934.                  background color  than the  rest of  the record.  As
  2935.                  the cursor  moves from  one field to another and the
  2936.                  field  bounds  change  automatically,  so  will  the
  2937.                  highlighted color area.
  2938.  
  2939.                  If you  attempt to  redefine boundaries  (F10) while
  2940.                  dynamic field  boundaries are in effect, you will be
  2941.                  permitted to alter only the record boundaries.
  2942.  
  2943.  
  2944.             Change COLOR of record area             <Page Up, Page Down>
  2945.  
  2946.                  If a field bound is set, the current field will have
  2947.                  a different foreground and background color than the
  2948.                  rest of  the record.   The foreground and background
  2949.                  colors of the area the cursor is currently on can be
  2950.                  changed with  the use  of the  Page Up and Page Down
  2951.                  keys.
  2952.  
  2953.                  If you  are not  satisfied with  the default colors,
  2954.                  experiment with the Page Up and Page Down keys until
  2955.                  you find a combination you like.
  2956.  
  2957.  
  2958.  
  2959.        ----------------------------------------------------------------------
  2960.        Edit Mode                                                   Page 45
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.                                       EditRand
  2967.        ----------------------------------------------------------------------
  2968.  
  2969.                  Ø The colors are saved in ER.INI.
  2970.  
  2971.  
  2972.  
  2973.             CASE Alter                  <Ctrl-O, Ctrl-P, Ctrl-X, Ctrl-C>
  2974.  
  2975.                  When in  Edit mode,  you can  cause  all  characters
  2976.                  within the current field boundary to be converted to
  2977.                  upper or  lower case,  or you can toggle the case of
  2978.                  existing characters one at a time:
  2979.  
  2980.                  Ctrl-O         This will cause all characters in the
  2981.                            current field boundary to be converted to
  2982.                            lOwer case.
  2983.  
  2984.                  Ctrl-P         This will cause all characters in the
  2985.                            current field boundary to be converted to
  2986.                            uPper case.
  2987.  
  2988.                  Ctrl-X         This will cause all characters in the
  2989.                            current field boundary to be converted to
  2990.                            miXed case, meaning that the first letter
  2991.                            of all words will be capitalized and the
  2992.                            remaining will be converted to lower case.
  2993.                            By default, a word to be converted is
  2994.                            defined as either the beginning of the
  2995.                            current field or any word preceded by a
  2996.                            space or other user-defined characters.
  2997.                            The user may define what characters should
  2998.                            be treated as word separators for this
  2999.                            purpose, with the use of the environmental
  3000.                            variable ERMIXSEP.  For example:
  3001.  
  3002.                                 SET ERMIXSEP=123456789 !
  3003.  
  3004.                            The above DOS command (executed prior to
  3005.                            executing EditRand) tells EditRand to
  3006.                            convert any word that is preceded by any
  3007.                            number, space or exclamation point.
  3008.  
  3009.  
  3010.                  Ctrl-C         This will cause the case of the
  3011.                            current Character to be toggled, and the
  3012.                            cursor will move one to the right.
  3013.  
  3014.  
  3015.  
  3016.        ----------------------------------------------------------------------
  3017.        Edit Mode                                                   Page 46
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.                                       EditRand
  3024.        ----------------------------------------------------------------------
  3025.  
  3026.                  Note that  you  can  globally  convert  a  range  of
  3027.                  records to  upper, lower,  or mixed  case using  the
  3028.                  Replace command.  See REPLACE on page 35.
  3029.  
  3030.  
  3031.             FIND deleted record                                  <Alt-Y>
  3032.  
  3033.                  Locate  next  deleted  record.    Search  begins  at
  3034.                  currently displayed  record and  continues to end of
  3035.                  file.   This function  will locate  any record  that
  3036.                  contains the deletion string (see Delete Record Alt-
  3037.                  D).   Note that  as you  browse records,  a  deleted
  3038.                  record is  denoted with  the  word  Deleted  on  the
  3039.                  status line.
  3040.  
  3041.  
  3042.             SORT on field bounds interval                       <Ctrl S>
  3043.  
  3044.                  This function  will  sort  the  file  based  on  the
  3045.                  content of  the currently  defined field boundaries.
  3046.                  Also,  only   those  records  within  the  currently
  3047.                  defined  record   boundaries  will  be  sorted;  all
  3048.                  records  outside   the  currently   defined   record
  3049.                  boundaries will  maintain their  position within the
  3050.                  file.   Before proceeding  with the  sort, a  prompt
  3051.                  will appear,  allowing you  to select  ascending  or
  3052.                  descending sort  order.   The sort can be aborted at
  3053.                  this point be pressing the Escape key.
  3054.  
  3055.                  Please BEWARE  that performing  a  sort  causes  ALL
  3056.                  editing changes to become PERMANENT (the same affect
  3057.                  as though  you had  Quit the  program) - all changes
  3058.                  are written  to the  permanent version  of the file,
  3059.                  and all  deleted records  are purged before the sort
  3060.                  actually occurs.   After  the sort,  the backup file
  3061.                  will reflect  the new  contents of the file, NOT the
  3062.                  previous  contents.    The  sort  operation  can  be
  3063.                  interrupted by pressing the Escape key, but the file
  3064.                  ordering will likely be scrambled.
  3065.  
  3066.                  The type  of sort  used by EDITRAND does not require
  3067.                  any additional  RAM or  disk space  since  the  main
  3068.                  working  file  is  sorted  in  place  on  the  disk.
  3069.                  However, if  there are  any pending deleted records,
  3070.                  such records  will be  purged.   The purge operation
  3071.  
  3072.  
  3073.        ----------------------------------------------------------------------
  3074.        Edit Mode                                                   Page 47
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.                                       EditRand
  3081.        ----------------------------------------------------------------------
  3082.  
  3083.                  DOES require building a second copy of the file - if
  3084.                  there  is   not  sufficient   disk  space  for  this
  3085.                  temporary second  copy, the  purge operation AND the
  3086.                  sort will fail.  See PURGING DELETIONS on page 58.
  3087.  
  3088.                  Once  the  sort  gets  under  way,  EDITRAND  passes
  3089.                  through the entire file comparing different pairs of
  3090.                  records, swapping their locations if they are not in
  3091.                  proper order  (current pass  number is  displayed on
  3092.                  the bottom  line).   The number  of passes and total
  3093.                  length of  time required  for the  sort depends upon
  3094.                  the number  of records  sorted and  how chaotic  the
  3095.                  pre-sort ordering  is (a file that is already nearly
  3096.                  sorted will  not require  as long  to sort as a file
  3097.                  whose ordering  is totally  random).    In  general,
  3098.                  however, this type of direct-disk sort is relatively
  3099.                  slow but gains the advantage of being able to sort a
  3100.                  file of unlimited size.
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.        ----------------------------------------------------------------------
  3131.        Edit Mode                                                   Page 48
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.                                       EditRand
  3138.        ----------------------------------------------------------------------
  3139.  
  3140.        Editing Functions
  3141.  
  3142.  
  3143.  
  3144.             Note that as soon as the cursor leaves the first record altered
  3145.             while in Edit Mode, the file name on line one of the display will
  3146.             have the ASCII character 241 (the plus/minus sign) prepended to
  3147.             the file name.  This allows quick acknowledgment of file edit
  3148.             changes.
  3149.  
  3150.  
  3151.  
  3152.             TEXT/HEX entry mode                                     <F1>
  3153.  
  3154.                  Data  can  be  typed  directly  into  the  currently
  3155.                  displayed record in either Text or Hex mode (Text is
  3156.                  the default). In text mode, normal alphanumeric keys
  3157.                  can be  used to enter data directly into the record.
  3158.                  Also, while  in text  mode, any  of  the  255  ASCII
  3159.                  characters can  typed by  pressing the  Alt key  and
  3160.                  typing a  number between  0 and  255 on  the numeric
  3161.                  keypad.     When  the   Alt  key  is  released,  the
  3162.                  representative  character   is  inserted   into  the
  3163.                  current position of the record.
  3164.  
  3165.                  If hex  mode is  desired, press  the F1  key (notice
  3166.                  that the  string "Hex  Mode" appears  momentarily on
  3167.                  the status  line, and  that the F1 definition on the
  3168.                  bottom line  is changed from "F1=Hex" to "F1=Text").
  3169.                  While in hex mode, only the characters 0 - 9 and A -
  3170.                  F are  legal.   A hex character is inserted into the
  3171.                  current position  by typing  two of these characters
  3172.                  (one is  not sufficient).   When the first character
  3173.                  is typed,  it appears  in reverse  video;  when  the
  3174.                  second character  is typed,  it is  appended to  the
  3175.                  first to  form the  desired hex  character, and this
  3176.                  character is  inserted into  the record in its ASCII
  3177.                  representation.  To switch back to Text mode, simply
  3178.                  press the F1 key again.
  3179.  
  3180.  
  3181.             BINARY NUMBER                                           <F2>
  3182.  
  3183.                  This function  is used to insert binary numbers into
  3184.                  the currently  displayed record.   Integers,  Longs,
  3185.  
  3186.  
  3187.        ----------------------------------------------------------------------
  3188.        Edit Mode                                                   Page 49
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.                                       EditRand
  3195.        ----------------------------------------------------------------------
  3196.  
  3197.                  Single  Precision,  Double  Precision,  or  Currency
  3198.                  numbers can be inserted. After pressing F2, you will
  3199.                  be prompted for which type of binary number you wish
  3200.                  to create  and insert.  After making this selection,
  3201.                  simply type  the  desired  number  in  decimal  form
  3202.                  followed by  carriage return.  The binary equivalent
  3203.                  of the  specified decimal number will be inserted at
  3204.                  the  current   cursor  position.     If   there   is
  3205.                  insufficient room  beyond  the  cursor  position  to
  3206.                  insert  the   number,  an   error  message  will  be
  3207.                  displayed, and  the  record  will  not  be  altered.
  3208.                  Display Binary  Number  functions  can  be  used  to
  3209.                  verify the correct number has been inserted.
  3210.  
  3211.  
  3212.             DISPLAY BINARY NUMBER               <F3 | F4 | F5 | F6 | F7>
  3213.  
  3214.                  This function  will display  a binary  number in its
  3215.                  decimal representation at center of the status line:
  3216.  
  3217.                            Integers            <F3>
  3218.  
  3219.                            Long Integers       <F4>
  3220.  
  3221.                            Single Precision    <F5>
  3222.  
  3223.                            Double Precision    <F6>
  3224.  
  3225.                            Currency            <F7>
  3226.  
  3227.                  Interpretation begins at current cursor position and
  3228.                  extends 2,  4, 4,  8 or 8 bytes for Integers, Longs,
  3229.                  Single  Precision,   Double  Precision  or  Currency
  3230.                  numbers, respectively.  This function will not alter
  3231.                  the contents of the record.
  3232.  
  3233.                  NOTE: The  currency data  type was  introduced  with
  3234.                  version 7.0  of  the  MicroSoft  BASIC  Professional
  3235.                  Development System.
  3236.  
  3237.  
  3238.             TAB stop on/off                                         <F9>
  3239.  
  3240.                  Pressing F9  will cause  a tab stop to be defined at
  3241.                  the current  cursor position.   If  a  tab  stop  is
  3242.  
  3243.  
  3244.        ----------------------------------------------------------------------
  3245.        Edit Mode                                                   Page 50
  3246.  
  3247.  
  3248.  
  3249.  
  3250.  
  3251.                                       EditRand
  3252.        ----------------------------------------------------------------------
  3253.  
  3254.                  already defined  at the  current position,  it  will
  3255.                  become undefined.  The tab stop status for each byte
  3256.                  position is denoted in the following manner:
  3257.  
  3258.                       Rule lines are visible:  if the current
  3259.                       byte position is defined as a tab stop,
  3260.                       the rule for that position will be
  3261.                       overlaid with a "T"; if the byte
  3262.                       position is not currently defined as a
  3263.                       tab stop the standard rule character for
  3264.                       that position will be seen instead.
  3265.  
  3266.                       Rule lines are not visible; generic rule
  3267.                       line is at bottom of record display
  3268.                       area:  if the current byte position is
  3269.                       defined as a tab stop, a "T" will appear
  3270.                       in the generic rule line directly under
  3271.                       the current cursor position.
  3272.  
  3273.                  If one  or more  tab stops are defined, pressing the
  3274.                  tab key  will cause  the cursor  to be placed on the
  3275.                  next defined  tab  stop  after  the  current  cursor
  3276.                  position.   Alternately, pressing  the shift/tab key
  3277.                  will cause  the cursor  to be  placed  on  the  next
  3278.                  defined tab stop before the current cursor position.
  3279.                  If no  tab stops  are currently defined or tab stops
  3280.                  are turned off (with Alt-F9), the tab increment will
  3281.                  instead be  used to  jump the cursor ahead (tab key)
  3282.                  or backward  (shift/tab key) the number positions as
  3283.                  currently defined  by the  tab  increment  (see  TAB
  3284.                  increment function  below; if  the tab increment has
  3285.                  never been  set, its  default value will be 8).  Tab
  3286.                  stops are  not restricted  in any  way by  the field
  3287.                  boundary settings.    If  tab  stops  are  currently
  3288.                  turned off  (Alt-F9), pressing  F9 will  generate an
  3289.                  error message on the status line.  Tab stops must be
  3290.                  turned on for F9 to function.
  3291.  
  3292.                  The principal  usefulness of setting tab stops is to
  3293.                  define  field   boundaries  of  the  current  record
  3294.                  layout.   One method  would be to have a hardcopy of
  3295.                  the record layout next to the machine and locate the
  3296.                  beginning of  each field  with the  cursor keys;  at
  3297.                  each beginning  field position, press F9 to define a
  3298.                  tab stop.   Thereafter,  you may  jump around to the
  3299.  
  3300.  
  3301.        ----------------------------------------------------------------------
  3302.        Edit Mode                                                   Page 51
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.                                       EditRand
  3309.        ----------------------------------------------------------------------
  3310.  
  3311.                  various fields  by using  tab and  shift/tab.    Tab
  3312.                  stops will  not have  to be  rekeyed since tab stops
  3313.                  are one  of  the  items  that  are  saved  into  the
  3314.                  defaults file ER.INI.
  3315.  
  3316.                  NOTE:   If you  change files that have varying field
  3317.                  layouts you  will have  to reset the tab stops.  The
  3318.                  last defined  set of  tab stops will be the one that
  3319.                  is written  to ER.INI  as you exit the program.  The
  3320.                  exception  to   this  is   when  various  files  are
  3321.                  maintained  in separate subdirectories; since ER.INI
  3322.                  is  typically   created  in   the  current   default
  3323.                  subdirectory, maintaining  data  files  in  separate
  3324.                  subdirectories   will    allow   multiple   EDITRAND
  3325.                  environments to  exist simultaneously in the form of
  3326.                  different copies  of ER.INI.   See  page 13 for more
  3327.                  information about ER.INI.
  3328.  
  3329.                  Ø The tab stops are saved in ER.INI.
  3330.  
  3331.  
  3332.             TAB increment                                      <Ctrl-F9>
  3333.  
  3334.                  This function  is used  to change the tab increment.
  3335.                  A prompt  will appear  at the  bottom of the screen.
  3336.                  Press Escape  to abort and save previous value.  The
  3337.                  default value  is 8.  The value of the tab increment
  3338.                  is used  to move  the cursor  forward (tab  key)  or
  3339.                  backward (shift/tab), but only if:
  3340.  
  3341.                       *    no tab stops are defined, or
  3342.  
  3343.                       *    tab stops  are currently  turned off  (see
  3344.                  TAB stops off)
  3345.  
  3346.                  If tab  stops have  never been  defined,  have  been
  3347.                  reset to  null (with Alt-T), or have been turned off
  3348.                  with (Alt-F9)  then pressing  tab or  shift/tab will
  3349.                  cause the  cursor to  move the  number of  spaces as
  3350.                  defined by the current tab increment.
  3351.  
  3352.                  Ø The tab increment is saved in ER.INI.
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.        ----------------------------------------------------------------------
  3359.        Edit Mode                                                   Page 52
  3360.  
  3361.  
  3362.  
  3363.  
  3364.  
  3365.                                       EditRand
  3366.        ----------------------------------------------------------------------
  3367.  
  3368.             TAB toggle tab stops off/on                         <Alt-F9>
  3369.  
  3370.                  Press Alt-F9  to turn  tab stops  off  or  on.    An
  3371.                  indicative message  will appear  on the status line.
  3372.                  If tab  stops have  been  defined  (with  F9),  then
  3373.                  subsequently  turned   off  with   Alt-F9,  the  tab
  3374.                  increment will  turn on.   When tab stops are turned
  3375.                  off, they  are still  defined and  will be  saved to
  3376.                  ER.INI if  EDITRAND is  exited.  When tabs stops are
  3377.                  again turned  on, the  tab increment  is turned off.
  3378.                  While  tab  stops  are  turned  off,  the  tab  stop
  3379.                  define/undefine key (F9) cannot be used.
  3380.  
  3381.                  Notice that  the tab  stop markers  (T)  within  the
  3382.                  rules will  reflect whether  tabs are  turned on (Ts
  3383.                  will appear) or turned off (Ts will disappear).
  3384.  
  3385.  
  3386.             TAB stops reset to null                              <Alt-T>
  3387.  
  3388.                  Pressing Alt-T  will cause all currently defined tab
  3389.                  stops to  become null - no tab stops will be defined
  3390.                  thereafter.  There is no way to undo this function.
  3391.  
  3392.  
  3393.             TOGGLE offset from beginning of field or record      <Alt-O>
  3394.  
  3395.                  Pressing Alt-O  will toggle  the quantity  displayed
  3396.                  after Off: on line two:
  3397.  
  3398.                       *    The number of bytes the cursor is from the
  3399.                            beginning  of   the  current  record  (the
  3400.                            default), or
  3401.  
  3402.                       *    The number  of bytes from the beginning of
  3403.                            the current  field, if  field  bounds  are
  3404.                            set.
  3405.  
  3406.                  Ø The offset display type is saved in ER.INI.
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.        ----------------------------------------------------------------------
  3416.        Edit Mode                                                   Page 53
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.                                       EditRand
  3423.        ----------------------------------------------------------------------
  3424.  
  3425.             TOGGLE decimal/hex offset display                   <Alt-F1>
  3426.  
  3427.                  Pressing Alt-F1 will toggle the position numerics on
  3428.                  line  two   between  decimal   (the   default)   and
  3429.                  hexidecimal.
  3430.  
  3431.                  Ø The offset display representation is saved in ER.INI.
  3432.  
  3433.  
  3434.             BOUNDS change                                          <F10>
  3435.  
  3436.                  This function allows the record and field boundaries
  3437.                  to be  altered.   A dual  prompt will  appear at the
  3438.                  bottom of  the screen, one for record bounds and one
  3439.                  for field bounds. Pressing carriage return at either
  3440.                  prompt  will   cause  the  previous  setting  to  be
  3441.                  maintained.   Pressing Escape will abort the change.
  3442.                  For each  setting, both  the beginning and end value
  3443.                  must be  specified, separated  by a  space.   If  an
  3444.                  illegal  set  of  values  are  specified,  an  error
  3445.                  message will be displayed and the old values will be
  3446.                  kept.
  3447.  
  3448.                  If the currently displayed record is outside the new
  3449.                  record bounds,  the nearest  boundary record will be
  3450.                  fetched and  displayed.    Records  outside  of  the
  3451.                  record bounds  are not available (cannot be fetched)
  3452.                  for ANY purpose.  To access such records, the record
  3453.                  bounds  must   be  again  altered  to  include  such
  3454.                  records.   If the  end record  bound is not the last
  3455.                  record in  the file, records cannot be appended.  If
  3456.                  the end record bound IS the last record in the file,
  3457.                  the end  bound is  incremented by  1  for  each  new
  3458.                  record appended.
  3459.  
  3460.                  The following  edit functions are constrained by the
  3461.                  current record  and  field  bounds:  SEARCH,  COUNT,
  3462.                  REPLACE,FETCH, APPEND,  FIND (deleted  record),  and
  3463.                  SORT.   See  the  description  and  usage  for  each
  3464.                  function for  more information.   Also  when in edit
  3465.                  mode, the Insert and Delete keys will have no effect
  3466.                  if the  cursor is  outside of  the currently defined
  3467.                  field bounds.   Field  bounds can  be set  to change
  3468.                  automatically to  reflect tab  settings with Dynamic
  3469.                  Field Boundaries (see page 45).
  3470.  
  3471.  
  3472.        ----------------------------------------------------------------------
  3473.        Edit Mode                                                   Page 54
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.                                       EditRand
  3480.        ----------------------------------------------------------------------
  3481.  
  3482.  
  3483.                  Note that  the new  values will  be reflected on the
  3484.                  left side  of the  screen on  line 2:  R:nnn-nnn for
  3485.                  record bounds and F:nnn-nnn for field bounds.
  3486.  
  3487.                  Ø The bound settings are saved in ER.INI.
  3488.  
  3489.  
  3490.             BOUNDS Reset                                       <Alt-F10>
  3491.  
  3492.                  Pressing  Alt-F10  will  cause    field  and  record
  3493.                  beginning and  end bounds  to be  reset to  physical
  3494.                  minimum and  maximum.   If dynamic  field boundaries
  3495.                  are in effect, only record bounds will be reset.
  3496.  
  3497.  
  3498.             CLEAR field bounds                                   <Alt-F>
  3499.  
  3500.                  Pressing  Alt-F   will  insert   blanks  within  the
  3501.                  currently defined field bounds area of the currently
  3502.                  displayed record, regardless of the cursor position.
  3503.  
  3504.  
  3505.             CLEAR to end of record                               <Alt-E>
  3506.  
  3507.                  Pressing  Alt-E   will  insert   blanks  within  the
  3508.                  currently displayed record, beginning at the current
  3509.                  cursor position  extending to the end of the record.
  3510.                  Field bounds have no effect upon this function.
  3511.  
  3512.  
  3513.             UPDATE dBASE Header Record Count                     <Alt-Q>
  3514.  
  3515.                  If edit  file has  been loaded  as a dBASE file with
  3516.                  the use  of the /D switch, you can update the record
  3517.                  count by  pressing Alt-Q.   The  current  number  of
  3518.                  records shown on line one will be the number that is
  3519.                  used, even if record deletions are pending.
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.        ----------------------------------------------------------------------
  3530.        Edit Mode                                                   Page 55
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.                                       EditRand
  3537.        ----------------------------------------------------------------------
  3538.  
  3539.        Miscellaneous Functions
  3540.  
  3541.  
  3542.             SAVE AS to another file                              <Alt-V>
  3543.  
  3544.                  SAVE AS  allows the  current file  to be  output  in
  3545.                  several ways:
  3546.  
  3547.                       *    Make a  copy of  the file  and give  it  a
  3548.                            different name.
  3549.  
  3550.                       *    Copy only  portions of  the current  file,
  3551.                            and put  the  portions  in  another  file.
  3552.                            This is  done by  setting  the  field  and
  3553.                            record boundaries  to  either  include  or
  3554.                            exclude the desired portions.
  3555.  
  3556.                       *    Make a copy of the current file, adding an
  3557.                            additional field to the new output file.
  3558.  
  3559.                       *    Optionally add  carriage return/line  feed
  3560.                            pairs  to   each  output   record.    This
  3561.                            facilitates editing  the output  file with
  3562.                            an ordinary  text editor,  or to  create a
  3563.                            new data  file to  be used  by some  other
  3564.                            program.
  3565.  
  3566.                       *    Send the whole file, or portions of it (as
  3567.                            constrained   by    field    and    record
  3568.                            boundaries), to  a parallel  printer, such
  3569.                            as LPT1:  or LPT2:.  When printing in this
  3570.                            manner, EditRand  automatically appends  a
  3571.                            carriage return/line  feed  pair  to  each
  3572.                            output record.
  3573.  
  3574.                            If you  wish to  send to a serial printer,
  3575.                            first output  to a  file, then use the DOS
  3576.                            PRINT command  to send  the file  to  your
  3577.                            serial printer.
  3578.  
  3579.                  Several prompts will appear to guide you through the
  3580.                  selection process.  Each prompt will allow 2 or more
  3581.                  possible responses.   The  default response  will be
  3582.                  shown in square brackets.  This is the response that
  3583.                  will be  used if  you just  press  Enter.    At  any
  3584.  
  3585.  
  3586.        ----------------------------------------------------------------------
  3587.        Edit Mode                                                   Page 56
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.                                       EditRand
  3594.        ----------------------------------------------------------------------
  3595.  
  3596.                  prompt, you  can press  the Escape  key to abort the
  3597.                  entire operation.
  3598.  
  3599.                  Below are  the prompts  you will  see, in order (you
  3600.                  may not  see all  of the following prompt - the ones
  3601.                  you actually see will depend on how you respond):
  3602.  
  3603.                       1.   Save As.   Enter  the name of the file you
  3604.                            wish to  output to.  This would be LPT1 or
  3605.                            LPT2 if you are going to print the file.
  3606.  
  3607.                       2.   Purge deleted  records ?  This prompt will
  3608.                            appear only if you have deleted records in
  3609.                            the current  file.  If you answer Yes, the
  3610.                            output file  (or printer) will not contain
  3611.                            any of  the deleted  records.   This  will
  3612.                            have no effect on the current file.
  3613.  
  3614.                       3.   Copy Entire  file, or  insert New field at
  3615.                            cursor position?  Respond with Entire (the
  3616.                            default) to  output  the  whole  file,  or
  3617.                            respond with  New to  insert a  new field.
  3618.                            You will  be allowed to specify the length
  3619.                            of the  new field,  and if  it  should  go
  3620.                            before  or   after  the   current   cursor
  3621.                            position.   This prompt  appears  only  if
  3622.                            there is no field bound set.
  3623.  
  3624.                       3.   Output Entire file, or record/field bounds
  3625.                            Inclusive/eXclusive?   Respond with Entire
  3626.                            (the default) to output the whole file, or
  3627.                            respond  with  Inclusive  to  output  only
  3628.                            those records that fall within the current
  3629.                            record  boundaries   and  only  the  field
  3630.                            within   the   current   field   boundary.
  3631.                            Respond with eXclusive to output all parts
  3632.                            of the  current file  that fall outside of
  3633.                            the current  field and  record boundaries.
  3634.                            This prompt  will not  appear if field and
  3635.                            record  boundaries  are  set  to  physical
  3636.                            maximums.
  3637.  
  3638.                       4.   Add carriage  return/line  feeds  to  each
  3639.                            record?  The default response is No. Press
  3640.                            Y if  you want carriage return/line feeds.
  3641.  
  3642.  
  3643.        ----------------------------------------------------------------------
  3644.        Edit Mode                                                   Page 57
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.                                       EditRand
  3651.        ----------------------------------------------------------------------
  3652.  
  3653.                            This  prompt   will  not   appear  if  you
  3654.                            specified a printer.
  3655.  
  3656.                       5.   Output file  header ?     This prompt will
  3657.                            appear only  if the  current file  has  an
  3658.                            offset header.    You  can  tell  this  by
  3659.                            looking for  H:  nnn  on  line  2  of  the
  3660.                            display.   If you  are editing a dBASE III
  3661.                            file, there  will be  a header.  Answer no
  3662.                            if you  want to output data only.  Keep in
  3663.                            mind that  saying No will cause the output
  3664.                            file to  lose all control information that
  3665.                            is present in the current file's header.
  3666.  
  3667.  
  3668.             INVERSE video rule lines                             <Alt-I>
  3669.  
  3670.                  Toggle the  video  mode  of  the  underlying  rules.
  3671.                  Either regular  color or  inverse color is available
  3672.                  depending upon the individual user's needs.
  3673.  
  3674.                  Ø The rule line video setting is saved in ER.INI.
  3675.  
  3676.  
  3677.             EXIT to Browse mode                                 <Escape>
  3678.  
  3679.                  Press the  Escape key  to exit  from Edit  mode  and
  3680.                  place program in Browse mode.  Exiting to Browse has
  3681.                  no effect  on changes  made in  Edit mode,  and Edit
  3682.                  mode can be resumed at any time.
  3683.  
  3684.                  It is necessary to Escape to Browse mode to exit the
  3685.                  program (Quit or Abort) or Load a new file.
  3686.  
  3687.  
  3688.             PURGE DELETIONS
  3689.  
  3690.                  Purging  deletions  is  not  a  directly  accessible
  3691.                  function, but one that occurs as a result of several
  3692.                  other functions,  such as  Save As,  Load, and Quit.
  3693.                  EDITRAND will  ask if  you  wish  to  purge  deleted
  3694.                  records, but  only if  it has detected such records.
  3695.                  EDITRAND detects  deleted records either from direct
  3696.                  deletions by  the user (Alt-D) or if any record with
  3697.  
  3698.  
  3699.  
  3700.        ----------------------------------------------------------------------
  3701.        Edit Mode                                                   Page 58
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.                                       EditRand
  3708.        ----------------------------------------------------------------------
  3709.  
  3710.                  the deletion string is viewed by EDITRAND during the
  3711.                  edit session.
  3712.  
  3713.                  The purging of deleted records requires the creation
  3714.                  of a  temporary file to hold all non-deleted records
  3715.                  as the  current file  is processed.  For this reason
  3716.                  it is possible to receive an insufficient disk space
  3717.                  message when purging deletions.  If this occurs, two
  3718.                  options are  available: Save As to a different drive
  3719.                  that contains sufficient free space, or undelete all
  3720.                  records  with   Ctrl-U   (Undelete/Undo   Range   of
  3721.                  records).
  3722.  
  3723.                  During the  purge  operation,  two  running  numeric
  3724.                  totals appear  on the  bottom of  the screen.  These
  3725.                  two numbers  appear as  a pair  such as 89, 76.  The
  3726.                  first number  indicates the record that is currently
  3727.                  being inspected  for deletion  status.   The  second
  3728.                  number indicates  the total  number  of  non-deleted
  3729.                  records that  have been  written  to  the  temporary
  3730.                  file.   (Remember that  this temporary  file, if  no
  3731.                  errors occur,  will become  the new copy of the file
  3732.                  that is  being edited.)      This  means  that  when
  3733.                  processing is  completed, the  second number will be
  3734.                  the total  number of  records in  the  current  file
  3735.                  minus the number of deletions that have been made.
  3736.  
  3737.                  All  records   in  the   current  file   that  match
  3738.                  EDITRAND's idea  of a  deleted record  (the Deletion
  3739.                  String is  defined as  all nulls  with ASCII  237 in
  3740.                  position 1)  will be  purged, whether as a result of
  3741.                  an actual  delete operation  (Alt-D) or  some  other
  3742.                  external non-EDITRAND operation.
  3743.  
  3744.  
  3745.  
  3746.             TOGGLE prompt to purge deleted records               <Alt-Z>
  3747.  
  3748.                  It is  possible to  turn off  the  prompt  to  purge
  3749.                  deleted records.   This  will  disallow  purging  of
  3750.                  deleted records.   To turn the prompt back on, press
  3751.                  Alt-Z again.
  3752.  
  3753.                  Ø Prompt setting is recorded in ER.INI.
  3754.  
  3755.  
  3756.  
  3757.        ----------------------------------------------------------------------
  3758.        Edit Mode                                                   Page 59
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.                                       EditRand
  3765.        ----------------------------------------------------------------------
  3766.  
  3767.                       APPENDIX A - Ancillary String Functions
  3768.  
  3769.  
  3770.  
  3771.             The following  functions are available when invoking SEARCH,
  3772.             COUNT and REPLACE:
  3773.  
  3774.  
  3775.             CASE      The left  side of the status line will display the
  3776.                       current case  setting.  Pressing Alt-C will toggle
  3777.                       the  setting.     Use  of  the  SEARCH  and  COUNT
  3778.                       functions are the only way to reset case.
  3779.  
  3780.                       Ø Case setting is recorded in ER.INI.
  3781.  
  3782.  
  3783.             VIEW      The right side of the status line will display the
  3784.                       current View  setting.    When  View  is  ON,  all
  3785.                       records  being  searched  are  displayed  as  they
  3786.                       "flash" by,  and record  byte offsets  on line  2.
  3787.                       This function serves only to let you get a general
  3788.                       idea of  the content  of the  records as  they are
  3789.                       being searched.   In  most cases, the records will
  3790.                       not be  on the  screen long  enough to  be useful.
  3791.                       Pressing Alt-V will toggle the View setting.
  3792.  
  3793.                       Ø View setting is recorded in ER.INI.
  3794.  
  3795.  
  3796.             HEX       Press F1  to engage  hex search  mode.   You  must
  3797.                       press F1  while the  cursor  is  in  position  one
  3798.                       (before  typing  any  text).    To  ensure  proper
  3799.                       interpretation of  the hex  string, type  two-byte
  3800.                       hex digits  separated by  a  single  space.    For
  3801.                       example,  if   searching  for   a  pair   of   tab
  3802.                       characters, type  09 09,  not  0909.    Subsequent
  3803.                       SEARCH NEXT  or REPLACE NEXT will use the same hex
  3804.                       string.
  3805.  
  3806.             Binary         number.  To search for a binary number, press
  3807.                       F2 while  the cursor  is still in position one.  A
  3808.                       prompt will appear on the status line allowing you
  3809.                       to specify  whether to  search for  an Integer  (2
  3810.                       bytes), Long (4 byte integer), Single Precision (4
  3811.                       byte float),  Double Precision  (8 byte float), or
  3812.  
  3813.  
  3814.        ----------------------------------------------------------------------
  3815.        Appendix A                                            Page 60
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.                                       EditRand
  3822.        ----------------------------------------------------------------------
  3823.  
  3824.                       Currency (8  bytes).  After specifying which type,
  3825.                       a prompt  will appear  on the bottom line allowing
  3826.                       entry of  a decimal number.  Press carriage return
  3827.                       to complete.  The specified decimal number will be
  3828.                       converted to  binary form  using either  IEEE (the
  3829.                       default) or  Microsoft Binary Format (must use the
  3830.                       /M switch), and the search will begin.  Subsequent
  3831.                       SEARCH NEXT  or REPLACE  NEXT will  use  the  same
  3832.                       binary string.   (NOTE:   Microsoft  Binary Format
  3833.                       will be  in effect  only if the string MBF appears
  3834.                       on the left side of the status line.)
  3835.  
  3836.             Alt-nnn   Any of  the 255  ASCII characters, except ASCII 0,
  3837.                       may be  typed with  the use of the Alt key and the
  3838.                       numeric keypad.  This function is not available if
  3839.                       either of  the Hex  or  Binary  functions  are  in
  3840.                       effect.
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.  
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.        ----------------------------------------------------------------------
  3872.        Appendix A                                            Page 61
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.                                       EditRand
  3879.        ----------------------------------------------------------------------
  3880.  
  3881.                             APPENDIX B - EDITRAND Forms
  3882.  
  3883.  
  3884.  
  3885.        The accompanying  forms are  for your use.  You may make copies or use
  3886.        the softcopy  equivalent of  these forms  supplied with  the  EditRand
  3887.        distribution disk.
  3888.  
  3889.  
  3890.  
  3891.  
  3892.  
  3893.  
  3894.  
  3895.  
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.  
  3903.  
  3904.  
  3905.  
  3906.  
  3907.  
  3908.  
  3909.  
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.  
  3916.  
  3917.  
  3918.  
  3919.  
  3920.  
  3921.  
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927.  
  3928.        ----------------------------------------------------------------------
  3929.        Appendix B                                                   Page 62
  3930.  
  3931.  
  3932.                           EDITRAND Registration Form
  3933.  
  3934.        This program is not public domain or freeware.  It is marketed on
  3935.        the shareware principle and a payment of $35 is required after an
  3936.        initial trial period of 30 days.  With your payment of $35 you will
  3937.        receive (1) A printed, bound up-to-date copy of the documentation and
  3938.        the latest version on disk without the UNREGISTERED VERSION reminder;
  3939.        (2) the next release free; (3) a copy of the NUMRECS utility.  NUMRECS
  3940.        will tell you the number of records of any size that will fit on the
  3941.        total and available disk space of any drive (or all) drives.
  3942.  
  3943.        Please use this form to submit your payment.  If you are already a
  3944.        registered customer, please use this form to purchase additional
  3945.        copies, or pass on to a friend or associate.
  3946.  
  3947.        Date:_______________________________________________________
  3948.  
  3949.  
  3950.        Name:_______________________________________________________
  3951.  
  3952.  
  3953.        Address:____________________________________________________
  3954.  
  3955.                ____________________________________________________
  3956.  
  3957.                ____________________________________________________
  3958.  
  3959.                ____________________________________________________
  3960.  
  3961.        Phone:  ____________________________________________________
  3962.  
  3963.        Each registered version of EditRand is personalized with the
  3964.        licensee's name or company name.  Enter the name you wish to use
  3965.        below (must be a person's name or a company name):
  3966.  
  3967.        Licensee: __________________________________________________
  3968.  
  3969.        Current Version of EDITRAND:         _______________________
  3970.  
  3971.        From where did you receive your ____________________________
  3972.        sharware copy of EditRand ?     ____________________________
  3973.  
  3974.        Licenses ordered:     Media size quantities          $ Total
  3975.  
  3976.          $35 each            3.5" : (720K) ____             _______
  3977.  
  3978.                              5.25": (360K) ____             _______
  3979.  
  3980.          International Orders add $5 ground, or $15 air:  _________
  3981.  
  3982.          Total amount of your order:                  $ ___________
  3983.  
  3984.        Comments:___________________________________________________
  3985.  
  3986.        Mail this form with payment to:     Scott Whitehead
  3987.                                            CMD Data Services
  3988.        | Thank you for your        |       10413 Firethorn Lane
  3989.        | registration and payment! |       Austin, TX 78750-1740
  3990.  
  3991.  
  3992.  
  3993.                            EDITRAND Report Form
  3994.  
  3995.  
  3996.        Please use  this form  (or a  copy of  it) to  report  bugs,
  3997.        enhancement  requests,   or  just   general   comments   and
  3998.        correspondence.   If there is not enough room on this sheet,
  3999.        please attach any additional pages required.
  4000.  
  4001.        Date:     ___________         EDITRAND Version: ____________
  4002.  
  4003.        Name:     __________________________________________________
  4004.  
  4005.        Address:  __________________________________________________
  4006.  
  4007.                  __________________________________________________
  4008.  
  4009.                  __________________________________________________
  4010.  
  4011.        Phone:    __________________________________________________
  4012.  
  4013.  
  4014.  
  4015.        Check one:     BUG Report ____     Enhancement Request _____
  4016.  
  4017.        For enhancement, 1. through 4. are not required.
  4018.  
  4019.        1.   Operating System/Version: _____________________________
  4020.  
  4021.        2.   Machine manufacturer, model: __________________________
  4022.  
  4023.        3.   Memory configuration: _________________________________
  4024.  
  4025.        4.   What other programs were running (TSRs, network, etc):
  4026.  
  4027.             _______________________________________________________
  4028.  
  4029.             _______________________________________________________
  4030.  
  4031.        5.   Description: __________________________________________
  4032.  
  4033.             _______________________________________________________
  4034.  
  4035.             _______________________________________________________
  4036.  
  4037.             _______________________________________________________
  4038.  
  4039.             _______________________________________________________
  4040.  
  4041.             _______________________________________________________
  4042.  
  4043.  
  4044.        Please mail to:     Scott Whitehead
  4045.                            CMD Data Services
  4046.                            10413 Firethorn Lane
  4047.                            Austin, TX 78750-1740
  4048.  
  4049.  
  4050.  
  4051.                                       EditRand
  4052.             ------------------------------------------------------------
  4053.  
  4054.                                        Index
  4055.  
  4056.               43 or 50 line mode   10
  4057.               Abort   6, 7, 10, 25
  4058.               ABORT program   17
  4059.               Alt-nnn   33, 34, 37, 61
  4060.               Ancillary string functions   60
  4061.               APPEND record   4, 28, 41, 54
  4062.               Arguments   6
  4063.               Asterisk   18, 21, 36
  4064.               Backup   3, 11
  4065.               Binary number   3, 29, 34, 37, 49, 50, 60
  4066.               Bounds   3, 14, 25, 54
  4067.               Bounds Reset   55
  4068.               Browse mode   15, 35, 58
  4069.               Browse Mode Functions Summary   17
  4070.               Browse Only   7, 23
  4071.               Carriage return/line feed   56
  4072.               Case   34, 37, 60
  4073.               CHANGE bounds   17, 29
  4074.               CHANGE colors of cursor area   29
  4075.               CLEAR field bounds   30, 55
  4076.               CLEAR to end of record   30, 55
  4077.               Color   29, 45
  4078.               Command line switches   11, 22
  4079.               COUNT   17, 24, 33, 54, 60
  4080.               COUNT NOT   33
  4081.               COUNT word occurrences   28
  4082.               COUNT word occurrences (Repeat)   28
  4083.               CUT into Scratchpad   28, 40
  4084.               Data Display   15
  4085.               DBASE   2, 8, 9, 22
  4086.               DBASE Fields   9
  4087.               DBASE file structures   9
  4088.               DELETE range of records   28, 43
  4089.               DELETE record   4, 28, 42
  4090.               Deletion String   42, 44, 47, 59
  4091.               DISCLAIMER   4
  4092.               Dynamic field boundaries   25, 28, 45, 54, 55
  4093.               Dynamic Fields   17
  4094.               EDIT   17, 23, 27
  4095.               Edit entry mode (Text or Hexidecimal)   49
  4096.               Edit Mode Functions (Summary)   28
  4097.               Edit Mode Navigation   31
  4098.               ER.INI   6, 9, 10, 12, 17, 25, 26, 46, 52, 53, 54, 55, 58,
  4099.               59, 60
  4100.               Erase Backup files   7
  4101.             ------------------------------------------------------------
  4102.                                           i
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.                                       EditRand
  4109.             ------------------------------------------------------------
  4110.  
  4111.                                        Index
  4112.  
  4113.               ERINIPATH environment variable   13
  4114.               ERMIXSEP environment variable   36, 46
  4115.               Executing EDITRAND   6
  4116.               EXIT to Browse mode   30
  4117.               FETCH   17, 54
  4118.               Fetch absolute byte   25
  4119.               Fetch absolute record   24
  4120.               FETCH first or last record   31
  4121.               FETCH first or last record in file   28
  4122.               FETCH next or previous record   28, 31
  4123.               Fetch record   23
  4124.               FETCH record via absolute byte number   28, 32
  4125.               Fetch relative record   24
  4126.               Field boundaries   51
  4127.               Field bounds   54, 55
  4128.               Figure 1 - Example EditRand Screen   16
  4129.               Figure 2 - The File Selection Window   20
  4130.               File Selection Window   21
  4131.               FIND deleted record   29, 54
  4132.               Force Monochrome   10
  4133.               Generic Rule   15, 25, 51
  4134.               Global replacement   36
  4135.               Header Offset   9
  4136.               Help   7, 17, 30
  4137.               Hex   3, 27, 33, 34, 37, 49, 60, 61
  4138.               Hexidecimal   14, 32, 38
  4139.               Index files   12
  4140.               Initialization file   12
  4141.               Insert Binary Number   49
  4142.               INVERSE video   17, 25, 30, 58
  4143.               Last Record Truncated   11
  4144.               Load   11, 17, 18, 21, 40, 58
  4145.               Load File as dBASE III   8
  4146.               Microsoft Binary Format   8
  4147.               Move record   40
  4148.               No Backup   6, 25, 42, 43
  4149.               PASTE from Scratchpad   28, 36, 40, 41
  4150.               Printing   57
  4151.               Purge   43, 47, 59
  4152.               PURGE Deletions   30
  4153.               Purging deletions   58
  4154.               Quit   26, 58
  4155.               QUIT program   17
  4156.               Read-only   21
  4157.               Record bounds   23, 54
  4158.             ------------------------------------------------------------
  4159.                                          ii
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.                                       EditRand
  4166.             ------------------------------------------------------------
  4167.  
  4168.                                        Index
  4169.  
  4170.               Record Length   14, 25
  4171.               Record Number   14
  4172.               Relational/Related Files   12
  4173.               Reload previous file   19
  4174.               Replace   3, 35, 54, 60
  4175.               Replace At Cursor   37
  4176.               Replace Next   37, 39, 60, 61
  4177.               RESET Bounds to physical maximums   30
  4178.               Rules   15
  4179.               Sample EDITRAND screen   16
  4180.               SAVE AS   30, 58
  4181.               Scratchpad   3, 36, 40, 41
  4182.               Search   3, 17, 24, 28, 34, 54, 60
  4183.               Search for Binary number   60
  4184.               SEARCH NEXT   28, 34, 35, 60, 61
  4185.               SEARCH NOT   34, 35
  4186.               SHOW decimal value of binary number   29
  4187.               SORT   29, 47, 54
  4188.               Special symbols   18
  4189.               STRING replacement   28
  4190.               STRING replacement (Repeat)   28
  4191.               TAB increment reset   29
  4192.               TAB increment set   52
  4193.               TAB stop on/off   50
  4194.               TAB stops reset to null   29, 53
  4195.               TAB stops toggle   53
  4196.               TOGGLE decimal/hex offset display   29, 54
  4197.               TOGGLE Hex/Text entry mode   29
  4198.               TOGGLE offset from beginning of field or record   29, 53
  4199.               TOGGLE prompt to purge deleted records   30
  4200.               TOGGLE tab stop on/off at cursor position   29
  4201.               TOGGLE tab stops off/on   29
  4202.               UNDELETE or undo changes to range of records   28
  4203.               UNDELETE range of records   44
  4204.               UNDELETE record   28, 43
  4205.               UNDO range of records   44
  4206.               UNDO record   43
  4207.               UPDATE dBASE header record count   30
  4208.               VGA monitor   10
  4209.               Video Mode   10
  4210.               View records   34, 37, 60
  4211.               WARNING   4, 7, 11, 23, 42, 44
  4212.  
  4213.  
  4214.  
  4215.             ------------------------------------------------------------
  4216.                                          iii
  4217.  
  4218.  
  4219.  
  4220.  
  4221.  
  4222.                                  EditRand Tutorial
  4223.        ----------------------------------------------------------------------
  4224.  
  4225.                                  EditRand Tutorial
  4226.  
  4227.  
  4228.  
  4229.        This tutorial will demonstrate many of EditRand's useful functions.
  4230.        To begin, follow these steps:
  4231.  
  4232.             a.     Create a new subdirectory and make it the default.
  4233.                    For example:
  4234.  
  4235.                       MD ERTEST
  4236.                       CD ERTEST
  4237.  
  4238.             b.     Now copy  the necessary  files from  the  EditRand
  4239.                    distribution diskette:
  4240.  
  4241.                       COPY A:\1099.DAT
  4242.                       COPY A:\1099.DBF
  4243.                       COPY A:\ER.INI
  4244.  
  4245.                    The file  1099.DAT contains  sample 1099  data  as
  4246.                    reported  to   the  Internal  Revenue  Service  by
  4247.                    businesses each  year.   The file  1099.DBF is the
  4248.                    same data  in a  dBASE III format. The file ER.INI
  4249.                    contains settings necessary to this tutorial.
  4250.  
  4251.                    In the following exercises, the file 1099.DAT will
  4252.                    be used.   The  file 1099.DBF  is used only in the
  4253.                    section titled The FILE SELECTION SCREEN.
  4254.  
  4255.             c.     Copy the EditRand executable program, ER.EXE, from
  4256.                    the distribution  disk  onto  your  hard  disk  or
  4257.                    floppy disk.   You  can locate ER.EXE anywhere you
  4258.                    wish, but  if it  is not  in the  current  default
  4259.                    subdirectory, make  sure it  is in  a subdirectory
  4260.                    that is  in  the  current  PATH.    The  currently
  4261.                    defined PATH can be checked with the PATH command.
  4262.  
  4263.             d.     Execute the  EditRand  program  in  the  following
  4264.                    manner:
  4265.  
  4266.                       ER 1099.DAT 420
  4267.  
  4268.                    This will  cause EditRand  to load the sample file
  4269.                    using a  record length  of 420 bytes.  Also, since
  4270.  
  4271.  
  4272.        ----------------------------------------------------------------------
  4273.        Appendix C                                                        C 1
  4274.  
  4275.  
  4276.  
  4277.  
  4278.  
  4279.                                  EditRand Tutorial
  4280.        ----------------------------------------------------------------------
  4281.  
  4282.                    the supplied  EditRand initialization  file ER.INI
  4283.                    was copied  into the current subdirectory, the tab
  4284.                    settings in it will be used for 1099.DAT.
  4285.  
  4286.        You are now ready to begin this tutorial.  It is best to follow the
  4287.        outlined steps chronologically, since some operations depend on
  4288.        previous steps.
  4289.  
  4290.  
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.  
  4322.  
  4323.  
  4324.  
  4325.  
  4326.  
  4327.  
  4328.  
  4329.        ----------------------------------------------------------------------
  4330.        Appendix C                                                        C 2
  4331.  
  4332.  
  4333.  
  4334.  
  4335.  
  4336.                                  EditRand Tutorial
  4337.        ----------------------------------------------------------------------
  4338.  
  4339.        1.   FOR STARTERS
  4340.  
  4341.             You should  see on  your screen  a 420 byte record.  This is
  4342.             record 1  of the file 1099.DAT.  At the bottom of the screen
  4343.             are several  defined function keys.  There are more function
  4344.             keys than  this, but  these are the most important ones.  To
  4345.             see a  brief description  of the  rest of them, press Alt-H.
  4346.             Press any key to restore the EditRand main screen.
  4347.  
  4348.             Currently EditRand  is in  BROWSE mode  and  no  editing  is
  4349.             possible.  You can perform Search and Word Count, as well as
  4350.             fetch other records, but no alterations are possible.
  4351.  
  4352.  
  4353.             Try fetching other records:
  4354.  
  4355.             a.     Press right  cursor.   You  should  see  record  2
  4356.                    appear.   To be sure, look at the right of the top
  4357.                    line of  the display.  To the right of Record: you
  4358.                    will see  ccc/ttt where  ccc is the current record
  4359.                    and ttt  is the  total number  of records  in  the
  4360.                    file.
  4361.  
  4362.             b.     Press Ctrl-End.   The  last  record  of  the  file
  4363.                    should appear.
  4364.  
  4365.             c.     Press Ctrl-Home.   The  first record  of the  file
  4366.                    should re-appear.
  4367.  
  4368.             d.     To switch  to EDIT  mode, press  "E".   The cursor
  4369.                    should appear  on  byte  (character)  one  of  the
  4370.                    current record.
  4371.  
  4372.  
  4373.        2.   TABS and BOUNDARIES
  4374.  
  4375.             Look at  the Record  and Field  Boundary definitions on line
  4376.             two, denoted by
  4377.  
  4378.                  R: 1-80  F: 1-420
  4379.  
  4380.             This says  that record  and field  bounds are  both  set  to
  4381.             physical maximums  and all string operations will operate on
  4382.             the full  extent of  the file.   (There  are 80  records and
  4383.             their record length is 420 bytes.)
  4384.  
  4385.  
  4386.        ----------------------------------------------------------------------
  4387.        Appendix C                                                        C 3
  4388.  
  4389.  
  4390.  
  4391.  
  4392.  
  4393.                                  EditRand Tutorial
  4394.        ----------------------------------------------------------------------
  4395.  
  4396.             The supplied  ER.INI initialization  file caused the file to
  4397.             be loaded  with tab  stops defined  for the  file  1099.DAT.
  4398.             Notice the character "T" at various points on the display in
  4399.             the rulers under the record lines.
  4400.  
  4401.             a.     Press Tab  once and  notice that  the  cursor  has
  4402.                    moved to  the next  tab stop.   Press  Tab several
  4403.                    more times to get a feel for the functionality.
  4404.  
  4405.             b.     Now press  Shift-Tab until  the cursor  returns to
  4406.                    the first Tab stop.
  4407.  
  4408.             c.     Press the  End key.   The  cursor should be in the
  4409.                    last position  of the  record, byte 420.  This can
  4410.                    be verified  by looking  on the right side of line
  4411.                    two - the offset field should say  Off: 420.  This
  4412.                    means the  cursor is  this  many  bytes  from  the
  4413.                    beginning of the current record.
  4414.  
  4415.             d.     Press the  Home key.   The  cursor  should  be  in
  4416.                    position 1.
  4417.  
  4418.  
  4419.             Now you  will  experiment  with  setting  Record  and  Field
  4420.             Boundaries:
  4421.  
  4422.             e.     Press the  F10 key.   A  prompt will appear at the
  4423.                    bottom of the screen, allowing you to specify both
  4424.                    Record and  Field Boundaries.   Type  "10 70"  for
  4425.                    Record Boundary  and press  enter.  Now type   "51
  4426.                    140" for  Field Boundary  and press the enter key.
  4427.                    Bytes 51  to 140  represent the  numeric, or money
  4428.                    portion of the 1099 records.
  4429.  
  4430.             f.     Notice that  the beginning  record has  changed to
  4431.                    10.   Press Ctrl-End and see that you cannot fetch
  4432.                    any record  beyond record  70.  Press Ctrl-Home to
  4433.                    return to record 10.
  4434.  
  4435.             g.     Press the  Home key to position the cursor on byte
  4436.                    51.   Note that with Field Boundary set, no matter
  4437.                    where the  cursor is,  pressing Home  or End  will
  4438.                    always place the cursor at the beginning or end of
  4439.                    the current  Field Boundary  area.   Also, you are
  4440.  
  4441.  
  4442.  
  4443.        ----------------------------------------------------------------------
  4444.        Appendix C                                                        C 4
  4445.  
  4446.  
  4447.  
  4448.  
  4449.  
  4450.                                  EditRand Tutorial
  4451.        ----------------------------------------------------------------------
  4452.  
  4453.                    free to  set  the  field  boundary  to  any  area,
  4454.                    regardless of the tab settings.
  4455.  
  4456.             h.     Press Alt-S.   You  will see a prompt to specify a
  4457.                    search string.    Type  MONROE  and  press  Enter.
  4458.                    EditRand will  search only records 10 to 70 of the
  4459.                    file, and  will only  look in  the Field  Boundary
  4460.                    area of each record.  You should receive a message
  4461.                    telling you  that the  string was  not found.  Now
  4462.                    change the Field Boundary, using F10.  Press Enter
  4463.                    for Record  Bounds (this will cause the previously
  4464.                    specified Record  Boundary to  remain in  effect),
  4465.                    and type  "162 201"  for the  Field Boundary  (the
  4466.                    First Payee  Name field).    Now  press  Alt-N  to
  4467.                    repeat the  previous search.   The  string  MONROE
  4468.                    should be  found in  record 68.  This demonstrates
  4469.                    how EditRand  can focus  on a  specific field  and
  4470.                    ignore other areas of the file.
  4471.  
  4472.             i.     Now  press  Alt-F10  to  reset  Record  and  Field
  4473.                    Boundaries to physical maximums.
  4474.  
  4475.             Now to  demonstrate the  power of  Dynamic Field Boundaries.
  4476.             First turn  Dynamic Field  Boundaries on by pressing Ctrl-F.
  4477.             A message  should appear  on the status line (last line from
  4478.             the bottom)  indicating that  Dynamic Field  Boundaries  are
  4479.             turned On.   If  you have  a color  monitor, you can tell by
  4480.             looking at  the field  boundaries on  the left of the second
  4481.             line of  the display,  after F:  - the field boundaries will
  4482.             appear as  cyan.   Now to  demonstrate the  power of Dynamic
  4483.             Field Boundaries.
  4484.  
  4485.             j.     Press Tab  key one  time.   Notice that  the Field
  4486.                    Boundary (as  denoted to  the  right  of  F:)  has
  4487.                    changed to  reflect the  current  tab  setting  to
  4488.                    either side of the cursor position.
  4489.  
  4490.             k.     Now press  the right  cursor key  until the cursor
  4491.                    crosses over  the next tab.  Notice that the Field
  4492.                    Boundary changed  automatically  when  the  cursor
  4493.                    traveled into  the next field.  A field is defined
  4494.                    as the area between any two tab stops.  Generally,
  4495.                    a field is considered a single item of information
  4496.                    that  is   distinct  from   any  other   item   of
  4497.  
  4498.  
  4499.  
  4500.        ----------------------------------------------------------------------
  4501.        Appendix C                                                        C 5
  4502.  
  4503.  
  4504.  
  4505.  
  4506.  
  4507.                                  EditRand Tutorial
  4508.        ----------------------------------------------------------------------
  4509.  
  4510.                    information in  the record, such as Name, Address,
  4511.                    or Social Security Number.
  4512.  
  4513.             l.     Now  press   the  End   key.  When  Dynamic  Field
  4514.                    Boundaries are  On, EditRand  always looks  at the
  4515.                    tab settings  immediately to  either side  of  the
  4516.                    current cursor  position, and  uses those  as  its
  4517.                    Home and  End locations.   Press  the Home  key to
  4518.                    return to the beginning of the current field.
  4519.  
  4520.             Now to highlight a few other useful functions.  With Dynamic
  4521.             Field Boundaries still set On, do the following:
  4522.  
  4523.             m.     Press the  delete key  several times.  Notice that
  4524.                    characters shift  to the left, but only within the
  4525.                    current field.   This  would be true anytime Field
  4526.                    Boundaries are set, whether manually (with F10) or
  4527.                    with Dynamic Field Boundaries.
  4528.  
  4529.             n.     Now press  the insert  key and press the space bar
  4530.                    (or any  type  any  characters)  and  notice  that
  4531.                    characters to the right of the cursor key shift to
  4532.                    the right,  but only up to the next tab setting to
  4533.                    the right.
  4534.  
  4535.                       Note: If  no Field  Boundary was  set, use of
  4536.                       the delete  and insert  key would  affect all
  4537.                       characters from  the cursor to the end of the
  4538.                       record.
  4539.  
  4540.             o.     Now press  Alt-U to  undo the alterations you just
  4541.                    made.     When  prompted   for  Record   or  Field
  4542.                    Boundaries, type  F for  Field  Boundaries.    The
  4543.                    field you  just altered  will be  restored  to  it
  4544.                    previous contents;  if you had made changes to any
  4545.                    other portion  of the  current record,  they would
  4546.                    have been left as you made them, or you could have
  4547.                    responded with R to Undo the entire record.
  4548.  
  4549.  
  4550.  
  4551.  
  4552.  
  4553.  
  4554.  
  4555.  
  4556.  
  4557.        ----------------------------------------------------------------------
  4558.        Appendix C                                                        C 6
  4559.  
  4560.  
  4561.  
  4562.  
  4563.  
  4564.                                  EditRand Tutorial
  4565.        ----------------------------------------------------------------------
  4566.  
  4567.                       When you  executed  EditRand,  you  may  have
  4568.                       noticed a brief message that said "Copying to
  4569.                       1099.ERB".   The file  1099.ERB is  an  exact
  4570.                       copy of  the file  1099.DAT and  is used  for
  4571.                       backup purposes.   EditRand  is able  to undo
  4572.                       changes to  records by  making a  copy of the
  4573.                       same record in the backup file and copying it
  4574.                       back into the current record.
  4575.  
  4576.             p.     Using the  Tab key, locate the cursor on the field
  4577.                    that reads  "SOME TOWN".  Press Alt-R to perform a
  4578.                    replacement.    Now,  suppose the task you wish to
  4579.                    perform is  to change  "SOME TOWN"  to your town's
  4580.                    name. Two approaches are possible:
  4581.  
  4582.                    1. Tell EditRand  to replace  all occurrences of
  4583.                       "SOME TOWN" with your town's name.  Type:
  4584.  
  4585.                       /SOME TOWN/MY TOWN/*
  4586.  
  4587.                       and  press   Enter.     (The  asterisk  tells
  4588.                       EditRand to  perform this  replacement across
  4589.                       all  records   currently  defined  by  Record
  4590.                       Boundaries.)   All occurrences  of SOME  TOWN
  4591.                       have been  changed to  MY TOWN.   This  works
  4592.                       fine if  you know  this was  exactly what you
  4593.                       wanted.  But what if several records had some
  4594.                       other name, beside SOME TOWN, in them?
  4595.  
  4596.                    2. Press Ctrl-U,  All Records,  Field Bounds  to
  4597.                       restore the  town name  field to its previous
  4598.                       contents.   Then press Ctrl-Home to fetch the
  4599.                       first record  (actually record 10.)  Now tell
  4600.                       EditRand to  insert your  town's name  in ALL
  4601.                       records  at   this   position   (or   field),
  4602.                       regardless of  what was  there before.  After
  4603.                       typing the first slash delimiter press F7 and
  4604.                       the Replace  at Cursor  symbol "{C}" appears.
  4605.                       Finish the replacement string as you normally
  4606.                       would:
  4607.  
  4608.                            /{C}/MY TOWN  /*
  4609.  
  4610.                       This will cause "MY TOWN  " (or whatever town
  4611.                       name you  wish) to  be inserted  at the  same
  4612.  
  4613.  
  4614.        ----------------------------------------------------------------------
  4615.        Appendix C                                                        C 7
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.                                  EditRand Tutorial
  4622.        ----------------------------------------------------------------------
  4623.  
  4624.                       position across  all records.  Notice the two
  4625.                       extra blanks  after MY  TOWN - this is so the
  4626.                       last two  characters of  SOME  TOWN  will  be
  4627.                       overwritten with  blanks.   Another variation
  4628.                       would be:
  4629.  
  4630.                            /{C}/MY TOWN  /*?
  4631.  
  4632.                       This would  cause EditRand  to pause  at each
  4633.                       record before  inserting "MY  TOWN  " and ask
  4634.                       if you wish to perform the replacement.  This
  4635.                       way you can be very selective.
  4636.  
  4637.             q.     Now press  Ctrl-Home to  go  back  to  record  10.
  4638.                    Again position  the cursor  on the same field that
  4639.                    contains the  new town  name  you  just  inserted.
  4640.                    Suppose you  want to  change "MY  TOWN"  to  mixed
  4641.                    case.  Press Alt-R and type:
  4642.  
  4643.                       /{C}//X*
  4644.  
  4645.                    This replacement  string says  to convert to lower
  4646.                    case, but  capitalize the  beginning letter of all
  4647.                    words found  across all  records.   No replacement
  4648.                    string was  needed since  it is  implicit that all
  4649.                    characters are  to be  converted.   You could have
  4650.                    typed:
  4651.  
  4652.                       /MY TOWN//X*
  4653.  
  4654.                    to convert  only occurrences of "MY TOWN" to lower
  4655.                    case, or even:
  4656.  
  4657.                       /MY TOWN/My Town/*
  4658.  
  4659.                    This is  the same  result as above, but caused you
  4660.                    more keystrokes.
  4661.  
  4662.                    Other useful replace options:
  4663.  
  4664.                       L    Cause the  target to be converted to lower
  4665.                    case.
  4666.  
  4667.                       U    Cause the  target to be converted to upper
  4668.                    case.
  4669.  
  4670.  
  4671.        ----------------------------------------------------------------------
  4672.        Appendix C                                                        C 8
  4673.  
  4674.  
  4675.  
  4676.  
  4677.  
  4678.                                  EditRand Tutorial
  4679.        ----------------------------------------------------------------------
  4680.  
  4681.  
  4682.                       Ca   Fill the  target area  with a  string of
  4683.                            the character following the C ("a" could
  4684.                            be any character.)
  4685.  
  4686.                       P    Fill the  target with  the contents of the
  4687.                            scratchpad   (see   the   manual   for   a
  4688.                            description of the scratchpad.)
  4689.  
  4690.                       D    Delete any  record  where  the  target  is
  4691.                    found.
  4692.  
  4693.                    See the manual for details.
  4694.  
  4695.             r.     Now you  have decided  that the  above replacement
  4696.                    operations were  all a  BIG mistake  - you  didn't
  4697.                    mean any  of  this.  Press  Ctrl-U  to  cause  all
  4698.                    records within current boundary (still set to 10 -
  4699.                    100) to  be Undone  and restored to their original
  4700.                    contents.   When asked  if you want to restore the
  4701.                    entire Record  or only  the current Field, press R
  4702.                    to  restore  the  entire  record  (across  all  91
  4703.                    records, that  is.)  The town field now says "SOME
  4704.                    TOWN" again.
  4705.  
  4706.                    If you were certain that ALL  changes you had made
  4707.                    to the  current file  in the  current session were
  4708.                    unecessary and  you  wanted  to  start  over,  the
  4709.                    easiest way would be to reload the file:
  4710.  
  4711.                       1.   Press  Escape  to  return  to  Browse
  4712.                            mode.
  4713.  
  4714.                       2.   Type L  (for Load), followed by "*".  (The
  4715.                            asterisk is  a special  symbol that stands
  4716.                            for the  current file  name.  This is just
  4717.                            to prevent  you from having to retype it.)
  4718.                            When prompted with:
  4719.  
  4720.                                 Lose changes and continue (Y/N)?
  4721.  
  4722.  
  4723.  
  4724.  
  4725.  
  4726.  
  4727.  
  4728.        ----------------------------------------------------------------------
  4729.        Appendix C                                                        C 9
  4730.  
  4731.  
  4732.  
  4733.  
  4734.  
  4735.                                  EditRand Tutorial
  4736.        ----------------------------------------------------------------------
  4737.  
  4738.                            type Y.   This will throw away all changes
  4739.                            and reload  the  file  with  its  original
  4740.                            contents  intact.    To  accomplish  this,
  4741.                            EditRand deletes the current file 1099.DAT
  4742.                            and renames  the backup  file 1099.ERB  to
  4743.                            1099.DAT.
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.  
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.  
  4761.  
  4762.  
  4763.  
  4764.  
  4765.  
  4766.  
  4767.  
  4768.  
  4769.  
  4770.  
  4771.  
  4772.  
  4773.  
  4774.  
  4775.  
  4776.  
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.        ----------------------------------------------------------------------
  4786.        Appendix C                                                       C 10
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.                                  EditRand Tutorial
  4793.        ----------------------------------------------------------------------
  4794.  
  4795.        3.   NUMBERS
  4796.  
  4797.             There are two categories of numeric quantities:
  4798.  
  4799.  
  4800.             a.     ASCII, or  text numbers.   This is any number that
  4801.                    is entered literally with the number keys, such as
  4802.  
  4803.                       9283, or 938267.23
  4804.  
  4805.                    For an  example of  this type number, look between
  4806.                    byte positions 51 and 140.  You can tell instantly
  4807.                    that these  are  numbers  bcause  they  look  like
  4808.                    numbers.   ASCII numbers  are easy  to  deal  with
  4809.                    because    their    representation    is    easily
  4810.                    identifiable.   However, the drawback is that they
  4811.                    are more  difficult for  the computer to deal with
  4812.                    because they  slow calculation  speed.  The use of
  4813.                    binary numbers  sacrifices outward readability for
  4814.                    performance gains.
  4815.  
  4816.             b.     Binary   numbers.       Binary   numbers   are   a
  4817.                    representation that  is  closer  to  the  way  the
  4818.                    computer actually  looks at things, and  therefore
  4819.                    allow faster  calculations and require fewer bytes
  4820.                    of storage.   For example, an ASCII number that is
  4821.                    represented as 9204677821109228 requires 16 bytes,
  4822.                    or characters.   The  same number represented as a
  4823.                    binary number  only requires  8 bytes  of storage,
  4824.                    but if  viewed  using  EditRand,  will  appear  as
  4825.                    nonsense, such as:
  4826.  
  4827.                       ˝-Y+-
  4828.  
  4829.                    If the  computer is asked to perform a calculation
  4830.                    upon an  ASCII number, it must first convert it to
  4831.                    a binary number, then perform the calculation.  If
  4832.                    the number  is already  in binary  form, then  the
  4833.                    computer can do its business much faster.
  4834.  
  4835.                    EditRand allows  the use  of 5  different types of
  4836.                    binary numbers,  each with  its  own  meaning  and
  4837.                    length:
  4838.  
  4839.  
  4840.  
  4841.  
  4842.        ----------------------------------------------------------------------
  4843.        Appendix C                                                       C 11
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.                                  EditRand Tutorial
  4850.        ----------------------------------------------------------------------
  4851.  
  4852.             Type                Length         Maximum Value
  4853.             Integer             2 bytes        32,768
  4854.             Long Integer        4 bytes        2,147,483,648
  4855.             Single Precision    4 bytes        2.1 X 109 (in theory)
  4856.             Double Precision    8 bytes        9.2 X 1018 (in theory)
  4857.             Currency            8 bytes        9.2 X 1018 (in theory)
  4858.  
  4859.                    In theory  for Single Precision, Double Precision,
  4860.                    and  Currency  is  indicative  of  the  fact  that
  4861.                    anytime you  are dealing  with  a  floating  point
  4862.                    number,  it   is  possible   for  inaccuracies  to
  4863.                    eventually find  their way  into  calculations  on
  4864.                    such numbers  (such as add, subtract, multiply, or
  4865.                    divide).   The theoretical  limit means  that  the
  4866.                    number  should   be  able  to  accurately  perform
  4867.                    calculations  up   to  that   limit,  but  is  not
  4868.                    guaranteed.   This is  not a problem for EditRand,
  4869.                    as EditRand does not perform such calculations.
  4870.  
  4871.  
  4872.             How a  numeric field  in a data file is represented is up to
  4873.             the designer  of the  data file.   If speed is not an issue,
  4874.             then  it   might   be   preferable   to   use   pure   ASCII
  4875.             representation.   If speed  and compactness are issues, then
  4876.             binary representation  should be  used.   On the other hand,
  4877.             some database  packages don't  give you  a choice,  and  may
  4878.             force one  or the  other, or  even use  a proprietary format
  4879.             that is neither ASCII or binary.
  4880.  
  4881.             c.     EditRand will allow you to enter any binary number
  4882.                    anywhere in  any record.   In Edit mode, press F2.
  4883.                    You will see the following prompt:
  4884.  
  4885.                       Integer, Long, Single, Double, or Currency ?
  4886.  
  4887.                    Press the  indicated highlighted  key to enter the
  4888.                    desired numeric  type.   EditRand will  then allow
  4889.                    you to enter the number in ASCII (decimal) format.
  4890.                    When  you   press  Enter,   the  ASCII  number  is
  4891.                    converted to  binary and  inserted in  the current
  4892.                    record at the current cursor position.
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.        ----------------------------------------------------------------------
  4900.        Appendix C                                                       C 12
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.                                  EditRand Tutorial
  4907.        ----------------------------------------------------------------------
  4908.  
  4909.             d.     Verify the  number you  just  inserted.    If  you
  4910.                    entered an  integer, press  F3 with  the cursor at
  4911.                    the same  position.  You should see, on the status
  4912.                    line, the  same number  in ASCII  format.    Other
  4913.                    binary numeric display keys are:
  4914.  
  4915.                       F4   Long Integer
  4916.                       F5   Single Precision
  4917.                       F6   Double Precision
  4918.                       F7   Currency
  4919.  
  4920.                    The  use   of  these   keys  to   show  the  ASCII
  4921.                    representation of the binary number at the current
  4922.                    cursor position  depends upon  you, the  user,  to
  4923.                    know where  any particular  binary number  begins.
  4924.                    It is possible to use these keys on ANY portion of
  4925.                    a record,  even a  pure text field such as Name or
  4926.                    Address.   EditRand will  not make the distinction
  4927.                    and will  attempt to  show you  what  the  numeric
  4928.                    value at  the current  cursor position would be if
  4929.                    it was a binary number.
  4930.  
  4931.             e.     Note that  the use  of the  5 binary numeric types
  4932.                    can be  brought into  play when  performing  other
  4933.                    EditRand operations,  such as Search, Replace, and
  4934.                    Wordcount.   Each of these functions has an option
  4935.                    (F2-Bin) to  use binary  numbers instead  of ASCII
  4936.                    text.
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.        ----------------------------------------------------------------------
  4957.        Appendix C                                                       C 13
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.                                  EditRand Tutorial
  4964.        ----------------------------------------------------------------------
  4965.  
  4966.        4.   The FILE SELECTION SCREEN
  4967.  
  4968.             If you  are in  Edit mode,  press the  Escape key to exit to
  4969.             Browse mode.   (You  are in  Edit Mode  if  you  can  see  a
  4970.             blinking cursor  anywhere in the record area of the screen.)
  4971.             Now press  L and  you will  be presented  with the following
  4972.             prompt:
  4973.  
  4974.                  File name [length]:
  4975.  
  4976.             You could  enter a  filename and  press Enter to load it, or
  4977.             you could  invoke the  File Selection Screen.  There are two
  4978.             ways to do this:
  4979.  
  4980.             a.     Enter a  file specification that uses the wildcard
  4981.                    characters ?  and *,  and press  Enter.   The File
  4982.                    Selection Screen  will appear  with all files that
  4983.                    match the  specification showing in a window.  For
  4984.                    example, if  you typed *.DAT, this would cause all
  4985.                    files with  the extension "DAT" to be collected or
  4986.                    found by  EditRand,  and  displayed  in  the  File
  4987.                    Selection Screen.
  4988.  
  4989.             b.     Press the  F8 function key.  The first time you do
  4990.                    this, EditRand  will supply the file specification
  4991.                    *.* which  stands for  ALL files  in  the  current
  4992.                    subdirectory.  After the first time, EditRand will
  4993.                    use  whatever  path  and  file  specification  you
  4994.                    previously used.  This prevents you from having to
  4995.                    retype the  same specification again.  To override
  4996.                    this, just type a new specification.
  4997.  
  4998.             For this exercise, just press the F8 key so all files in the
  4999.             current subdirectory  will be  displayed.   If you  have not
  5000.             changed subdirectories,  the  files  1099.DAT  and  1099.DBF
  5001.             should be among the displayed files.  Now to try out some of
  5002.             the functions of the File Selection Screen:
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.  
  5013.        ----------------------------------------------------------------------
  5014.        Appendix C                                                       C 14
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.                                  EditRand Tutorial
  5021.        ----------------------------------------------------------------------
  5022.  
  5023.             c.     The main  window  of  the  File  Selection  Screen
  5024.                    contains the  names of  the files, in alphabetical
  5025.                    order,  that   have  been   found   for   display.
  5026.                    Subdirectories will  also appear  in this  window,
  5027.                    including the  current (shown as a single dot) and
  5028.                    the subdirectory  above the  current, if  there is
  5029.                    one (shown as two dots.)  If there are too many to
  5030.                    show on  the screen,  you can cause them to scroll
  5031.                    onto the  screen with the up and down cursor keys,
  5032.                    or the  Page Up and Page Down keys.  The file that
  5033.                    is highlighted  is the  one that will be loaded if
  5034.                    you press Enter.
  5035.  
  5036.             d.     You can  abort the  File Selection  Screen without
  5037.                    loading a  new file,  by pressing  the Escape key.
  5038.                    Also, you  can type a new file specification (File
  5039.                    mask) without  leaving the  File Selection Screen.
  5040.                    Press the  Tab key once and the cursor will appear
  5041.                    on the  field marked  "File  Mask:".    Using  the
  5042.                    backspace key,  change *.*  to  1099.*  and  press
  5043.                    enter three  times.  Now the only files you should
  5044.                    see are:
  5045.  
  5046.                       1099.DAT
  5047.                       1099.DBF
  5048.                       1099.ERB
  5049.  
  5050.                    1099.ERB is  the backup  file created by EditRand.
  5051.                    EditRand will  not allow you to load this file, as
  5052.                    it is in use.
  5053.  
  5054.             e.     Highlight the file 1099.DBF using the cursor keys.
  5055.                    Now press  the Tab  key twice to put the cursor on
  5056.                    the "Switches:"  field.   Type /DT and press Enter
  5057.                    three times.  This will cause the file 1099.DBF to
  5058.                    be loaded  as a  dBASE III  file.  Answer Yes when
  5059.                    asked:
  5060.  
  5061.                       Lose changes and continue ?
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.        ----------------------------------------------------------------------
  5071.        Appendix C                                                       C 15
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.                                  EditRand Tutorial
  5078.        ----------------------------------------------------------------------
  5079.  
  5080.                    This means don't save the changes you just made to
  5081.                    1099.DAT and  go  ahead  and  load  1099.DBF.  The
  5082.                    switch /DT   was  necessary so EditRand would load
  5083.                    the file  as a  dBASE  III  file  rather  than  an
  5084.                    ordinary flat  data file.   This  special handling
  5085.                    includes:
  5086.  
  5087.                    1. Use the  dBASE III  file header  length as  the
  5088.                       EditRand header offset (see the /Onnn switch in
  5089.                       the manual.)   Notice  that line two now has an
  5090.                       additional item, H: nnn.  This is indicative of
  5091.                       the fact that a Header offset is in effect, and
  5092.                       the nnn  is the actual length, in bytes, of the
  5093.                       offset.   This means  that you will not see the
  5094.                       first nnn  bytes of  the file.   The  offset in
  5095.                       this case  (since the  /DT switch was used), is
  5096.                       the dBASE  III header  length.   EditRand found
  5097.                       this length by looking at the specific location
  5098.                       at the  beginning of the file that contains the
  5099.                       header length.
  5100.  
  5101.                    2. Use the dBASE III record length as the EditRand
  5102.                       record length.  This also means that any record
  5103.                       length shown  in the  "Record length:" field on
  5104.                       the File  Selection Screen  will be  ignored in
  5105.                       this case.
  5106.  
  5107.                    3. The T part of the /DT switch is optional.  When
  5108.                       used, EditRand  will read  the dBASE  III field
  5109.                       names and  reset tabs to these fields.  This is
  5110.                       particularly useful  if you  are using  Dynamic
  5111.                       Field Boundaries.   Another benefit is that the
  5112.                       name  of   the  current   field  and  its  type
  5113.                       definition is  always displayed  on the  status
  5114.                       line.
  5115.  
  5116.             g.     You can  now experiment  with  some  of  the  same
  5117.                    exercises you  went through  previously  with  the
  5118.                    file 1099.DAT.   Take  note that  1099.DBF has the
  5119.                    same basic information as 1099.DAT, but the fields
  5120.                    are not in the same order.
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.        ----------------------------------------------------------------------
  5128.        Appendix C                                                       C 16
  5129.  
  5130.  
  5131.  
  5132.  
  5133.  
  5134.                                  EditRand Tutorial
  5135.        ----------------------------------------------------------------------
  5136.  
  5137.        5.   SAVE AS and Record Deletions
  5138.  
  5139.             Load the  file 1099.DAT,  press E  for Edit mode, and do the
  5140.             following.
  5141.  
  5142.             a.     Press Alt-V.  This will allow you save the current
  5143.                    file to a different file name - that is, to make a
  5144.                    copy of it.  You will see the prompt:
  5145.  
  5146.                       Save As:
  5147.  
  5148.                    Enter the  name TEMP.DAT  or any  other  name  you
  5149.                    wish, and  press Enter.  Press N when asked if you
  5150.                    wish  to   add  carriage  return/line  feeds.  The
  5151.                    current file,  1099.DAT, is  written to  the  file
  5152.                    TEMP.DAT. TEMP.DAT now has the exact same contents
  5153.                    as 1099.DAT.  You will  use TEMP.DAT  in  a  later
  5154.                    operation.
  5155.  
  5156.             b.     Press Alt-D  to delete  the current record (should
  5157.                    be record  1.)  The current record will become all
  5158.                    blanks except  byte 1  will be  the  Greek  letter
  5159.                    theta (Ì).   This  is how  any deleted record will
  5160.                    look.
  5161.  
  5162.             c.     EditRand will  not allow  any changes to a deleted
  5163.                    record.    Try  entering  text  into  the  record.
  5164.                    Notice that  you can still move the cursor through
  5165.                    the deleted  record, but  no changes  can be made.
  5166.                    It is still possible to make changes to any other,
  5167.                    non-deleted record.
  5168.  
  5169.             d.     Press F10  and reset record bounds to "21 40".  It
  5170.                    is not  necessary to  change Field  Boundaries  at
  5171.                    this time.   Now press Ctrl-D to delete records 21
  5172.                    through 40.  When you see the prompt:
  5173.  
  5174.                       Delete records 21 through 40 ?
  5175.  
  5176.                    press Yes and all 20 records will be deleted.
  5177.  
  5178.             e.     Press Escape  to exit to Browse mode.  Press L and
  5179.                    specify *  (to reload  the current  file).    When
  5180.                    asked
  5181.  
  5182.  
  5183.  
  5184.        ----------------------------------------------------------------------
  5185.        Appendix C                                                       C 17
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.                                  EditRand Tutorial
  5192.        ----------------------------------------------------------------------
  5193.  
  5194.                       Save changes and continue (Y/N) ?
  5195.  
  5196.                    type Y.  When asked
  5197.  
  5198.                       Purge deleted records (Y/N/Escape) ?
  5199.  
  5200.                    type Y. You will now see EditRand read each record
  5201.                    in the  current file, check it for deleted status,
  5202.                    and then  write the  record to  the new version of
  5203.                    1099.DAT if it is not deleted.  On the bottom line
  5204.                    of the display you will see two counts as EditRand
  5205.                    goes through  this process:  one for total records
  5206.                    checked in the current file, and one for the total
  5207.                    number of  non-deleted records   being written out
  5208.                    to the new version of 1099.DAT.  When this process
  5209.                    is complete  (it shouldn't  take more  than a  few
  5210.                    seconds on  a file  this small),  1099.DAT will be
  5211.                    reloaded.   Notice that  there  are  now  only  59
  5212.                    records - since you just deleted 21 records.
  5213.  
  5214.             f.     Now we will restore 1099.DAT to its original state
  5215.                    using the  copy you  made, TEMP.DAT.   Press L and
  5216.                    specify TEMP.DAT  to be  loaded.  Press E for Edit
  5217.                    mode and press Alt-V again and specify 1099.DAT as
  5218.                    the Save As file.  When you see the prompt:
  5219.  
  5220.                       File already  exists, erase  it and  write over
  5221.                    (Y/N) ?
  5222.  
  5223.                    type Y and the smaller version of 1099.DAT will be
  5224.                    overwritten with  the full version (in the form of
  5225.                    TEMP.DAT).
  5226.  
  5227.             h.     Load 1099.DAT  and  verify  that  it  contains  80
  5228.                    records.
  5229.  
  5230.  
  5231.  
  5232.         You may  experiment with  1099.DAT and 1099.DBF in any way you wish.
  5233.         The operations  you just  performed were  intended  to  give  you  a
  5234.         general feel for EditRand procedures and to give specific experience
  5235.         with some of the more useful functions.
  5236.  
  5237.  
  5238.  
  5239.  
  5240.  
  5241.        ----------------------------------------------------------------------
  5242.        Appendix C                                                       C 18
  5243.  
  5244.  
  5245.  
  5246.